簡體   English   中英

當從jsp組合表單對象時,Spring mvc缺少依賴集合的id

[英]Spring mvc miss id of dependent collection when combine form object from jsp

我有以下控制器返回視圖:

@RequestMapping(value = "/admin/adminUsers", method = RequestMethod.GET)
    public String adminUsers(ModelMap model, HttpSession session) {
        Set<TerminalAdmin> users = terminalAdminService.getAllAdmins();
        session.setAttribute("users", users);
        model.addAttribute("adminRoles", terminalAdminService.findAllAdminRoles());
        model.addAttribute("terminalAdmin", new TerminalAdmin());
        model.addAttribute("generatedPassword", PasswordUpdateStatus.generatePassword());
        return "admin/adminUsers";
    }

terminalAdminService.findAllAdminRoles()

返回帶有id的集合:

在此輸入圖像描述

在jsp上我渲染它像這樣:

<form:form modelAttribute="terminalAdmin" action="/admin/addNewAdmin">
    ...
    <form:checkboxes items="${adminRoles}" path="adminRoles"/>
    ...
</form:form>

我有以下控制器來接受這個對象:

@RequestMapping(value = "/admin/addNewAdmin")
    public String adminUsers(@ModelAttribute @Valid TerminalAdmin terminalAdmin...){
      ....
}

在調試中我看到terminalAdmin帶有adminRoles而沒有id。

在此輸入圖像描述

如何解決這個問題?

PS

當我保存實體時,它是Dependent collection重復的繼續

我更喜歡使用轉換器 ,因為對我來說它更干凈

你應該有類似以下的東西:

public class StringToAdminRoleConverter implements Converter<String, AdminRole> {

    @Autowired
    TerminalAdminService terminalAdminService;

    @Override
    public AdminRole convert(String role) {
        return terminalAdminService.findRoleByName(role);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM