【问题标题】:how to send checkbok state from included JSP page to another JSP page如何将复选框状态从包含的 JSP 页面发送到另一个 JSP 页面
【发布时间】:2018-09-28 12:33:37
【问题描述】:

我有三个 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");

谢谢!

【问题讨论】:

  • 在您的第一页中,您创建了 5 个具有相同名称和不同值的复选框 - 对吗?如果包含 JSP 页面,则应将其称为 JSP 片段(扩展名 .jspf)。代码&lt;jsp:param name="type1"... 读取请求参数。这是来自 HTTP 请求的参数 - 而不是来自页面。我认为,如果你能多说一些你想做的事情,解决问题会更容易。

标签: java jsp servlets


【解决方案1】:

首先,我建议您不要使用小脚本。它们在整个 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);

这将使值在“page2.jsp”中可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2019-03-12
    • 1970-01-01
    • 2013-12-13
    • 2014-01-12
    相关资源
    最近更新 更多