如何在jsp中存储请求参数的值以供下一页使用

时间:2013-06-22 05:00:44

标签: jsp setattribute getattribute

我们在使用时已在本论坛中阅读过 了request.setAttribute 和 request.getAttribute

只保留其值,直到加载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)


     **

3 个答案:

答案 0 :(得分:1)

会话是存储值的一种方法

session.setAttribute("name",value);

答案 1 :(得分:0)

方法ServletRequest.setAttribute(String, Object)void(不返回任何内容),因此没有值嵌入您正在使用的<%= ... %>标记中。我想你想要getAttribute,或者更简洁的${varname}语法。

答案 2 :(得分: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");