4

まず、質問の見出しが正しくない場合は、提案してください。

質問に移ります: 以下のコンポーネントがあるとします:

search.jsp- データを送信するためのフォームを含む JSP ページ

Search.java-パスのディスパッチャとして機能できるように、と の両方get()を別々に定義したコントローラ サーブレットpost()/search.jsp

searchResults.jspf-検索結果を表示するための JSTL コードを含むフラグメント

ここで私が望むのは、すべてのPOSTリクエストに対して、コントローラ サーブレットが計算を行い、結果をリクエスト属性として設定し、独自のコードの後に​​フラグメントを含める必要があるビューにリクエストを転送することsearch.jspです。

そのため、次のような方法でビューを定義できます。

search.jsp
+
searchResults.jspf

1ページに。

問題は、 JSP への転送中にフラグメントをインクルードする方法がわからないため、ディスパッチャでフォワードまたはインクルードを実行できることです。

必要に応じてコードを投稿する必要がある場合、または修正が必要な場合はお知らせください。

4

2 に答える 2

3

jsp:include を使用して search.jsp に searchResult.jsp を埋め込みます。

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

例: 1. サーブレット:

@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. search.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. searchResult.jsp

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

以下のように、jspf を jsp に含めることができます。

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

特定のテストがtrueと評価された場合にのみ、特定のセクションを実行するステートメントを設定できます。

元:

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