我正在创建一个基于Spring mvc框架的Web应用程序。这个应用程序包含四个单选按钮。我的要求是将选择的单选按钮传递给控制器,该部分已完成。现在,一旦选择传递给控制器然后我不知道如何在JSP上保留无线电的选择。因为当我将jsp的名称作为index.jsp返回时,页面将重新加载单元格按钮中没有选择的初始值
<form id="envselection" action="${pageContext.request.contextPath}/env" method="post">
<input type="radio" name="env" id="radioSelection" value="QA 71" onclick="submitForm()">
<input type="radio" name="env" id="radioSelection" value="QA 72" onclick="submitForm()">
<input type="radio" name="env" id="radioSelection" value="QA 73" onclick="submitForm()">
<input type="radio" name="env" id="radioSelection" value="QA 74" onclick="submitForm()">
</form>
的Javascript
<script>
function submitForm() {
document.getElementById("envselection").submit();
}
</script>
控制器部分
@RequestMapping(value = "/env", method = RequestMethod.POST)
public String env(HttpServletRequest request){
logger.info("parameter is "+request.getParameter("env"));
return "index";
}
是否有其他方法可以设置java选择的单选按钮值,并保留JSP上单选按钮的选择。
提前致谢
答案 0 :(得分:2)
使用Spring的form
标记和表单支持bean的组合。
首先创建一个简单的bean来支持表单。
public class EnvBean {
private String env;
public String getEnv() {
return env;
}
public void setEnv(String env) {
this.env = env;
}
}
接下来修改你的控制器方法以接受bean。
@RequestMapping(value = "/env", method = RequestMethod.POST)
public String env(@ModelAttribute("envBean") EnvBean envBean){
logger.info("parameter is " + envBean.getEnv());
return "index";
}
要使用form
标记,请将以下taglib指令添加到jsp的顶部:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
然后您可以按如下方式修改表单:
<form:form id="envselection" modelAttribute("envBean") action="/env">
<form:radiobutton path="env" value="QA 71" onclick="submitForm()"/>QA 71
<form:radiobutton path="env" value="QA 72" onclick="submitForm()"/>QA 72
<form:radiobutton path="env" value="QA 73" onclick="submitForm()"/>QA 73
<form:radiobutton path="env" value="QA 74" onclick="submitForm()"/>QA 74
</form:form>
发布表单并返回同一页面后,将保留所选单选按钮的值。
如果您希望在首次登陆页面时默认选择单选按钮,则只需默认表格支持bean中的值。
private String env = "QA 71"; // QA 71 will be selected by default