html - 提交后无法显示选定的下拉值
问题描述
单击提交后,我无法显示选定的下拉值。
<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!
解决方案
当我选择 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";
}
让我知道这是否有帮助。
推荐阅读
- python - 如何将改变结构的 csv 读入 pandas 数据帧
- node.js - 没有永久访问互联网的构建机器上的包
- docker - How to access minikube dashboard from external browser, deployed on gcloud compute engine
- mysql - 如何正确级联删除mysql表的外键?
- java - XSD 与 Spring 一起使用,无法匹配 WSDL
- c - `sprintf` 的行为是否定义了`NULL` 格式字符串?
- javascript - 从字符串中删除点和空格
- swift - 快速完成表格视图重新加载后执行任务
- php - 通过 REST API 创建订单后运行 Woocommerce 挂钩
- api - 使用具有速率限制的 API