单选按钮选择及其在spring mvc中的值

时间:2014-01-09 19:05:13

标签: java javascript jsp spring-mvc

我正在创建一个基于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上单选按钮的选择。

提前致谢

1 个答案:

答案 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