4

首先,如果我的问题标题不正确,请建议我。

继续提问:假设我有以下组件:

search.jsp- 带有提交数据表单的 JSP 页面

Search.java- 一个控制器 Servlet 具有两者get()post()分别定义,以便它可以充当路径的调度程序/search.jsp

searchResults.jspf- 带有一些 JSTL 代码的片段以显示搜索结果

我在这里想要的是对于每个POST请求,控制器 servlet 必须进行计算,将结果设置为请求属性,然后将请求转发到应该在其自己的代码之后包含 Fragment的视图search.jsp

因此,我可以通过以下方式定义视图:

search.jsp
+
searchResults.jspf

在单个页面上。

问题是,我可以使用调度程序执行转发或包含,因为我不知道如何在转发到 JSP 时包含片段。

让我知道是否需要在必要时发布一些代码,或者需要任何更正。

4

2 回答 2

3

在您的 search.jsp 中使用 jsp:include 嵌入您的 searchResult.jsp:

<jsp:include page="searchResult.jsp"></jsp:include>

示例: 1. servlet:

@WebServlet(name = "Servlet", urlPatterns = "/myForwardTest")
public class Servlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("search.jsp").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          doPost(request, response);
    }
 }
  1. 搜索.jsp:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
       <title>In search resust</title>
    </head>
    <body>
     Search.jsp embed searchResult.jsp
    <jsp:include page="searchResult.jsp" />
    </body>
    </html>
    
  2. 搜索结果.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <body>
      in searchResult
    </body>
    </html>
    
于 2015-11-04T15:53:35.187 回答
1

您可以在您的 jsp 中包含您的 jspf,如下所示:

<%@include file="searchResult.jspf" %>

仅当特定测试评估为true时,您才能设置语句以执行特定部分。

前任:

if(.....==true){
<%@include file="searchResult.jspf" %>
}else{
<%@include file="someOther.jspf" %>
}
于 2015-11-04T15:58:38.673 回答