【问题标题】:Thymeleaf - Selecting multiple options from a pickListThymeleaf - 从选择列表中选择多个选项
【发布时间】:2020-03-21 13:08:31
【问题描述】:
Here is my code 



<div class="panel-body">
                        <div id="pickList">
                            <div class="row">
                                <div class="col-sm-5">
                                    <select class="form-control pickListSelect pickListResult"
                                        style="width: 100%" multiple="multiple" id="existingAdminGroupMembers" th:field="*{adminGroup.members}">
                                        <!-- <option
                                            th:each="currentUser : ${add_user.adminGroup.currentMembers}"
                                            th:value="${currentUser}" th:text="${currentUser}"></option> -->
                                    </select>
                                </div>
                                <div class="col-sm-2 pickListButtons">
                                    <button class="pAdd btn btn-primary btn-sm">&gt;</button>
                                    <button class="pAddAll btn btn-primary btn-sm">&gt;&gt;</button>
                                    <button class="pRemove btn btn-primary btn-sm">&lt;</button>
                                    <button class="pRemoveAll btn btn-primary btn-sm">&lt;&lt;</button>
                                </div>
                                <div class="col-sm-5">
                                    <select class="form-control pickListSelect pickData"
                                        style="width: 100%" multiple="multiple" id="availableMembersForAdminGrp">
                                        <option
                                            th:each="adminUser : ${add_user.adminGroup.availableMembers}"
                                            th:value="${adminUser.userName}"
                                            th:text="${adminUser.userName}"></option>
                                        </select>
                                </div>
                            </div>
                        </div>

                    </div>


 public class Group {

private String groupName;
private List<User> availableMembers = new ArrayList<User>();
private List<String> currentMembers = new ArrayList<String>();
private String[] members;
}


    public class AddUser {
        private String clusterName;
        private String projectName;
        private Group adminGroup;
        private Group userGroup;
}



 Controller Class :

        model.addAttribute("add_user", addUser);

当我尝试使用 Post 方法将模型属性返回给控制器类时,我无法从 th:field adminGroup.members 检索pickListResult 的数据。你能告诉我上面代码中的问题是什么吗.

【问题讨论】:

    标签: thymeleaf


    【解决方案1】:

    假设你的模型属性从控制器端是这样的

    model.addAttribute("add_user", group );
    
    <select class="form-control pickListSelect pickData" style="width: 100%" multiple="multiple" id="admins" th:field="*{adminUser.userName}">
         <option th:each="adminUser : ${add_user.admins.members}"
            th:value="${adminUser.userName}"
            th:text="${adminUser.userName}"></option>
    </select>
    

    更多详情请参考this post

    【讨论】:

    • 这不起作用,因为我无法使用 post 方法在控制器端检索数据。
    • 那么你还需要添加你的控制器逻辑
    • public String addUserToGroup(Model model,@ModelAttribute AddUser addUser,RedirectAttributes redirectAttributes) 抛出 NameAlreadyBoundException {
    • 没有这样的字段 th:field="*{adminUser.id}"> 作为 id
    • 我只是假设。您需要添加任何唯一值。另外请提出另一个问题或编辑相同的问题,因为您的控制器本身无法正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2022-07-16
    • 2011-12-17
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多