首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ModelAttribute仅将第一个值添加到列表中

ModelAttribute仅将第一个值添加到列表中
EN

Stack Overflow用户
提问于 2017-12-04 17:33:38
回答 0查看 36关注 0票数 0

在我的视图中,我生成了输入"username",选择属性为multiple=multiple,其名称为"rolesss“。

我的问题是,如果我通过post发送这样的表单,我的控制器应该将角色转换为列表,但我只能得到包含单个元素的列表。

例如:我发送带有值的post:

代码语言:javascript
复制
username:MyUser
_csrf:aef50238-92cf-48df-86a4-cb6e2b8f62c9
rolesss:USER
rolesss:ADMIN

在调试模式下,我在控制器中看到了以下值: roless:"USER“username:"MyUser”

"ADMIN“确实消失了。

我的控制器看起来像:

代码语言:javascript
复制
@Controller
@RequestMapping("/user-management")
public class UserManagementController {

    @RequestMapping("")
    public ModelAndView home() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("pages/user-management");

        return modelAndView;
    }

    @RequestMapping(value = "", method = RequestMethod.POST)
    public ModelAndView changeRoles(@ModelAttribute("username") String username,@ModelAttribute("rolesss") List<String> rolesss) {

        return null;
    }

}

我的观点是我将2个胸腺叶片段合并为1个,在我的代码#user-roles-form中是单独的片段,但我认为它不应该改变任何事情:

代码语言:javascript
复制
<th:block layout:fragment="main-content">
    <section>
        <h2 class="section-title no-margin-top">Role Management</h2>
        <div class="form-group">
            <div class="panel panel-primary">
                <div class="panel-heading">Změna rolí uživatele</div>
                <div class="panel-body">
                    <form class="form-horizontal" role="form" action="/user-management" method="post">
                        <div class="form-group">
                            <label for="user-name" class="col-sm-2 control-label">Uživatel</label>
                            <div class="col-sm-10">
                                <input id="user-name" class="autocomplete form-control" type="text"
                                       placeholder="Jméno uživatele" name="username"/>
                            </div>
                            <input type="hidden"
                                   th:name="${_csrf.parameterName}"
                                   th:value="${_csrf.token}"/>
                        </div>
                        <div id="user-roles-form" th:fragment="roles(roles)" xmlns:th="http://www.thymeleaf.org">
                            <div class="form-group">
                                <label for="user-roles" class="col-sm-2 control-label">Uživatelovy role</label>
                                <div class="col-sm-10">
                                    <select multiple="multiple" class="form-control" id="user-roles" name="rolesss">
                                        <th:block th:each="role : ${roles}">
                                            <option th:value="${role.userRole.role}" th:text="${role.userRole.role}" th:selected="${role.selected}"></option>
                                        </th:block>
                                    </select>
                                </div>
                            </div>
                            <div class="form-group">
                                <div class="col-sm-offset-2 col-sm-10">
                                    <button type="submit" class="btn btn-ar btn-primary">Uložit</button>
                                </div>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </section>
</th:block>
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47630243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档