我遇到上述代码的问题,承认' defaultpagination'变量。它不断抛出'必需字符串参数' defaultpagination'不存在'用户界面上的消息。这是显示可配置设置的编辑屏幕的一部分。
控制器方法如下。
@RequestMapping(value = "/update", method = RequestMethod.POST)
public ModelAndView updateSetting(
@RequestParam("defaultpagination") String defaultPagination,
@RequestParam("id") long id) {
Setting setting = settingService.getOne(id);
setting.setDefaultPagination(Integer.parseInt(defaultPagination));
settingService.saveSetting(setting);
return new ModelAndView("redirect:/settings/setting-listing");
}
thymleaf html可以在下面看到。
<form role="form" data-toggle="validator" name="createSetting" enctype="multipart/form-data" method="post" th:object="${setting}" action="/settings/update">
<div class="form-group">
<label for="defaultpagination">Default Pagination</label>
<input class="form-control" name="defaultpagination" type="number" th:field="${setting.defaultPagination}" placeholder="Enter default pagination" required="required" data-error="Pagination is required (maximum cannot exceed 100)" />
<div class="help-block with-errors"></div>
</div>
<input type="hidden" th:rows="1" class="form-control" id="id" name="id" th:value="${setting.id}"/>
<br />
<button type="submit" class="btn btn-default">Submit Button</button>
<br />
<br />
<br />
</form>
有趣的是,我可以更改“输入”。标记到textarea标记,一切都将正常工作(defaultpagination被识别)。但是,我想使用输入进行验证。在这种情况下,输入需要是一个数字。在类似的情况下,我需要一个电话号码和电子邮件。有没有人在百里香的输入/ textarea标签上遇到同样的问题?
答案 0 :(得分:0)
一种解决方案是将控制器中的String defaultPagination更改为Integer(如果您只希望整数作为defaultpagination)
即
@RequestMapping(value = "/update", method = RequestMethod.POST)
public ModelAndView updateSetting(
@RequestParam("defaultpagination") Integer defaultPagination,
@RequestParam("id") long id) {
另一种解决方案是使用输入标签的pattern属性(仅允许数字而不是小数点)
<input class="form-control" name="defaultpagination" type="text"
pattern="\d+" th:field="${setting.defaultPagination}" placeholder="Enter default
pagination" required="required" data-error="Pagination is required (maximum cannot exceed 100)" />
让我知道这些是否适合您