我们在使用时已在本论坛中阅读过 了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)
**
答案 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");