我有三个JSP页面。第一个包含使用for
循环创建的复选框。
的Page1.jsp:
for(int i=0; i<5; i++){
%>
<input type="checkbox" name="selection" value="box"+<%=i %> />
%>
第二个(Page2.jsp)包含第一个,并将复选框的状态发送到第三个(Page2.jsp)。
Page2.jsp:
<jsp:include page="Page1.jsp">
<jsp:param name="type1" value="<%=request.getParameterValues(\"selection\")%>" />
</jsp:include>
Page3.jsp:
<%String valuebd=request.getParameter("type1");
谢谢!
答案 0 :(得分:1)
首先,我建议您不要使用scriptlet。它们在整个JSP页面中丢失了代码,这使得您的应用程序极难管理。你应该使用EL(表达语言)。这允许您在不使用Java代码的情况下向JSP页面添加功能,例如:
<c:if test="${parameterValue}">
<p>${parameterValue}</p>
</c:if>
解决你的问题。我建议使用POST请求类型将值传递到服务器上。然后,您可以从服务器将其重定向到所需的JSP页面。您不应该考虑在JSP页面之间传递值。这打破了您在制作基于Web的应用程序时所处理的范例。
<input type="hidden" name="value" value="${parameterValue}"/>
通过在form
元素中放置类似此元素的内容并提交该表单,可以将其传递给servlet服务器。接下来,在java代码中,您可以使用RequestDispatcher
将其传递给下一个JSP文件。
String value = request.getParameter("value");
RequestDispatcher dispatcher = request.getRequestDispatcher("page2.jsp");
dispatcher.forward(request, response);
这将使&#34; page2.jsp&#34;。
中的值可用