2014-10-27 80 views
0
下一頁

第一頁控制器,我通過了checkbok在POST方法,傳遞複選框的值在春天

@RequestMapping(value = { "/new.html" }, method = { RequestMethod.POST }) 
    public ModelAndView submitNew(final HttpServletRequest request, 
      @RequestParam(value = "asSelectedCheckbox", required = false) boolean asSelectedCheckbox){ 

我通過get方法的複選框過,然後在POST方法我如果複選框爲true,則if語句會執行某些操作,但無論該複選框是否被選中,該請求總是在第二個頁面控制器中返回false。

第二頁後方法控制

@RequestMapping(value = { "/newNext.html" }, method = { RequestMethod.POST }) 
    public ModelAndView submitNewNext(final HttpServletRequest request, 
      @RequestParam(value = "asSelectedCheckbox", required = false) boolean asSelectedCheckbox){ 

我的第一頁有複選框

<input id="id" name="asSelectedCheckbox" type="checkbox" /> 

我怎樣才能複選框,從第一頁正確的價值傳遞到下一個頁面?

回答

1

考慮每次控制器被稱爲程序的新「運行」,它沒有狀態,也不知道誰曾經調用它。

E.g.如果兩個用戶同時打開new.html並且一個提交表單的複選框已選中,而另一個沒有提交?你的newNext.html應該如何表現?

現在的答案:

可以在會話中的商店複選框值綁定到特定的用戶,或者通過它可以查看,以便提交newNext.html當你得到該值。

您可以submitNew()添加以下代碼:

model.add("asSelectedCheckbox", asSelectedCheckbox); 

繼new.jsp代碼:

<form:hidden path="asSelectedCheckbox" /> 

而在new.jsp頂部以下代碼:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 
+0

所以,我確實需要把隱藏的字段放在第一個jsp頁面中,當複選框是第二個jsp時,我想要做一些處理選擇?在控制器的post方法中,我是否需要將asSelectedCheckbox作爲參數傳遞給此處? – Samarland 2014-10-27 20:31:02

+0

您的第一個控制器頁面會呈現一些HTML格式的表單,並將表單數據發佈到第二個控制器。所以你必須讓第一個控制器把表單中預先設置的隱藏字段渲染成第二個控制器。 – 2014-10-27 21:24:37