【问题标题】:Unable to display selected dropdown value after submit提交后无法显示选定的下拉值
【发布时间】:2019-12-17 04:24:19
【问题描述】:
点击提交后,我无法显示选定的下拉值。
<form action="#" th:action="@{/page1/send}" th:object="${val}" method="post">
<select class="form-control" name="action" id="action" th:value="${value}">
<option th:selected="'ABC' == ${value}">ABC</option>
<option th:selected="'XYZ' == ${value}">XYZ</option>
</select>
</form>
在controller.java中:
@RequestMapping("/page1/send")
public String send(Values val, Model model) {
String value = val.getValue();
model.addAttribute("value",value);
return "page1";
}
当我选择 XYZ 并提交时,它再次恢复为 ABC!
【问题讨论】:
标签:
html
spring
spring-boot
spring-mvc
thymeleaf
【解决方案1】:
当我选择 XYZ 并提交时
我没有在您的表单中看到提交按钮。但是我明白你的要求。假设 page1.html 首先由一些控制器方法加载,如下所示
@GetMapping(path = "/")
public ModelAndView home()
{
ModelAndView mav = new ModelAndView();
mav.addObject("value", "XYZ");
mav.setViewName("page1");
return mav;
}
这服务于下面的 html 页面表单
<form action="#" th:action="@{/page1/send}" method="post">
<select class="form-control" name="action" id="action">
<option th:selected="'ABC' == ${value}" value="ABC">ABC</option>
<option th:selected="'XYZ' == ${value}" value="XYZ">XYZ</option>
</select>
<input type="submit" value="submit"/>
</form>
现在我可以读取提交的下拉列表的值并将其从控制器方法发送回页面
@RequestMapping("/page1/send")
public String testSubmit(@RequestParam("action") String action, Model model) {
model.addAttribute("value",action);
return "page1";
}
如果有帮助,请告诉我。