2013-06-22 34 views
1
下一頁

我已閱讀在這個論壇本身,當我們使用 了request.setAttribute 和 request.getAttribute如何請求參數的值存儲在JSP的

它的值只保留,直到在JSP頁面加載。 所以他們建議使用隱藏的形式,當我正在使用隱藏的形式 - 我似乎無法得到正確的。它表示不允許我使用無效值來確保通過.setAttribute存儲的所有值都具有一些初始化值。

這裏是代碼中錯誤顯示

 **org.apache.jasper.JasperException: Unable to compile class for JSP: 

    An error occurred at line: 83 in the jsp file: /season1.jsp 
    The method print(boolean) in the type JspWriter is not applicable for the arguments (void) 
    80: <!-- end .content --></div> 
    81: </form> 
    82: <%i=1;%> 
    83: <input type="hidden" name="epnostorage" value="<%= request.setAttribute("epno", epno) %>" /> 
    84: <input type="hidden" name="casestorage" value="<%= request.setAttribute("case", i) %>" /> 
    85: <% 
    86: } 


    An error occurred at line: 84 in the jsp file: /season1.jsp 
    The method print(boolean) in the type JspWriter is not applicable for the arguments (void) 
    81: </form> 
    82: <%i=1;%> 
    83: <input type="hidden" name="epnostorage" value="<%= request.setAttribute("epno", epno) %>" /> 
    84: <input type="hidden" name="casestorage" value="<%= request.setAttribute("case", i) %>" /> 
    85: <% 
    86: } 
    87: else if(i==1) 


    ** 

回答

1

會話是單向的存儲值

session.setAttribute("name",value); 
+0

有人建議我,如果我想使用一個頁面隱藏形式的值是更好的選擇..雖然我想在這裏做一個動態頁面,它必須在頁面上再次使用變量的值,所以你可以建議我該怎麼做。 –

+0

getAttribute –

+0

如果你使用會話來設置屬性將它轉發到我添加會話 –

0

方法ServletRequest.setAttribute(String, Object)void(沒有返回值),所以沒有價值,你正在使用的<%= ... %>標籤嵌入。我認爲你想要getAttribute,或者更簡潔的${varname}語法。

+0

我要爲下一個jsp頁面要使用的值..這是部分,我想要存儲下一頁的值使用.. –

+0

事實上,會話是一種方法來完成。重要的考慮因素是你在使用後刪除它,並且爲了避免與使用相同技巧的其他類和頁面相沖突而限定名稱。對於靈感:http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/servlet/FlashMap.html –

+0

閃存地圖是否可以通過jsp工作? –

0
<input type="hidden" name="epnostorage" value="<%= request.setAttribute("epno", epno) %>" /> 
<input type="hidden" name="casestorage" value="<%= request.setAttribute("case", i) %>" /> 

你在這裏做什麼是錯的。如果您需要在隱藏元素中設置一些值,則不需要在元素內設置爲request.setAtrribute()。 您可以設置爲

<% 
    int someInteger = 0; 
    String someString = "stringValue"; 
%> 
<input type="hidden" name="someInteger" value="<%=someInteger%>" /> 
<input type="hidden" name="someString" value="<%= someString%>" /> 

之後,你可以得到隱藏的元素在動作提交值

int someInteger = Integer.parseInt(request.getParameter("someInteger")); 
String someString = request.getParameter("someString");