PHP の include+switch 関数と同等のものを使用して単純な JSP Web サイトを作成するためのヘルプ/アドバイスを探しています。
目標は、1 つのメイン ページで複数の JSP インクルード ページを切り替えられるようにすることです。
上記の「関数」の最も単純な形式は何でしょうか?
PHP の include+switch 関数と同等のものを使用して単純な JSP Web サイトを作成するためのヘルプ/アドバイスを探しています。
目標は、1 つのメイン ページで複数の JSP インクルード ページを切り替えられるようにすることです。
上記の「関数」の最も単純な形式は何でしょうか?
そこに<jsp:include>
for があります。ELを使用してpage
属性を指定できます。
/WEB-INF/main.jsp
次のようなファイルを作成します。
<!doctype html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<jsp:include page="${page}" />
</body>
</html>
${page}
ページ コントローラ サーブレットを使用して値を制御できます。何かのようなもの:
public class PageController extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("page", "/WEB-INF" + request.getPathInfo());
request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);
}
}
web.xml
このサーブレットを次のようにマップします。
<servlet>
<servlet-name>pageController</servlet-name>
<servlet-class>com.example.PageController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>pageController</servlet-name>
<url-pattern>/page/*</url-pattern>
</servlet-mapping>
このようにして、サーブレットにアクセスできますhttp://example.com/context/page/foo.jsp
。この URL の例では/foo.jsp
、pathinfo から取得し、page
属性に値を設定/WEB-INF/foo.jsp
して EL で使用できる${page}
ようにし、jsp:include
含める必要があるものを認識できるようにします。面倒なスクリプトレットや switch ステートメントは必要ありません。
では、HTMLタグ/WEB-INF/foo.jsp
内に配置されているかのように、HTML を書き留めることができます。<body>
JSP ファイルは に配置されていることに注意してください/WEB-INF
。これは、URL による直接アクセスを防止するために行われます。これにより、ユーザーはページ コントローラーを介さずにそれらを要求することができなくなります。たとえばhttp://example.com/context/foo.jsp
、部分的なコンテンツ (to-be-同梱ページ)。
お役に立てれば。
試す
<% if ( expression1 ) { %>
<%@ include file="file1.jspf" %>
<% } else if(expression2) { %>
<%@ include file="file2.jspf" %>
<% } %>
または、オプションがある場合は、JSF2 および/または Facelets をチェックしてください。はるかに強力なテンプレート機能があります。