2014-01-09 16 views
3

我正在創建一個基於Spring MVC框架的Web應用程序。此應用程序包含四個單選按鈕。我的要求是將單選按鈕的選擇傳遞給控制器​​,該部分完成。現在,一旦將選擇傳遞給控制器​​,那麼我不知道如何保留JSP上的廣播選擇。因爲當我將jsp的名稱作爲index.jsp返回時,頁面將重新加載無選擇的初始值在單選按鈕單選按鈕及其在春季MVV的價值

<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的選擇也任何其他方式。

在此先感謝

回答

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 
+0

由於我們正在返回index.jsp名稱,因此應用程序正在重新加載jsp頁面。 –

+0

是的,但所選單選按鈕的值將在轉發回index.jsp後保留 –

+0

不,它不保留選擇值。當我點擊單選按鈕時,它顯示我,但隨着分數秒它消失,因爲頁面重新加載 –

相關問題