2013-06-22 24 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");