gpt4 book ai didi

java - Spring mvc表单预填充: list with preferences

转载 作者:行者123 更新时间:2023-12-01 15:53:29 25 4
gpt4 key购买 nike

我的数据库中有用户语言偏好的数据。我想使用 Spring MVC 在 Web 应用程序的前端管理这些信息。我按服务检索首选项,并希望显示一个包含用户首选项中预填充数据的公式。

我有一个列表,其中包含我通过 Controller 中的服务获得的所有可用语言:

@RequestMapping
public String preferences(@ModelAttribute PreferencesDto preferencesDto, ModelMap modelMap, HttpServletRequest request) {
final List<Language> languages = languageService.getEuropeanLanguage();
modelMap.addAttribute("languages", languages);

List<Language> userLanguages = preferenceService.getUserLanguages(getLoggedUser());
modelMap.addAttribute("userLanguages", userLanguages);

modelMap.addAttribute("preferencesDto", preferencesDto);

return "preferences";
}

在我的 jsp 中,我迭代语言列表以显示与语言相关的复选框:

<form:form commandName="preferencesDto">
<c:forEach items="${languages}" var="language">
<form:checkbox path="languages" value="${language}" id="cl${language.id}"/>
${language.code6391}
</c:forEach>
<input type="submit" value="Save"/>
</form:form>

我想显示带有用户语言首选项的预填充复选框。我怎样才能做到这一点?

最佳答案

您需要添加可用语言的属性并设置要用于表单的 d 的语言列表。

DTO:

public class PreferencesDto implements Serializable {
private static final long serialVersionUID = 1L;
private List<Language> languages = new ArrayList<Language>(0);

public List<Language> getLanguages() {return languages;}
public void setLanguages(List<Language> languages) {this.languages = languages;}
}

Controller :

@RequestMapping
public String preferences(@ModelAttribute PreferencesDto preferencesDto, BindingResult result, ModelMap modelMap, HttpServletRequest request) {
modelMap.addAttribute("preferencesDto", preferencesDto);
// Manage available data
modelMap.addAttribute("languagesAvailable", languageService.getEuropeanLanguage());

// pre-filled DTO with prefered languages
preferencesDto.setLanguages(getPreferedLanguages(request));

return "preferences";
}

/** Manage preferences languages for user logged */
private List<Language> getPreferedLanguages(HttpServletRequest request) {
final List<Language> languagesSelected = new ArrayList<Language>(0);
// TODO : call a service to get the prefered language for the logged user and fill the list
return languagesSelected;
}

JSP:

<form:form commandName="preferencesDto">
<c:forEach items="${languagesAvailable}" var="item">
<form:checkbox path="languages" value="${item}"/>${item.code6391}
</c:forEach>
<input type="submit" value="Save"/>
</form:form>

或者使用标签:

<form:checkboxes path="languages" items="${languagesAvailable}"/>

关于java - Spring mvc表单预填充: list with preferences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com