JSF 1.2での作業中に、1ページのコードが大きすぎ、JDeveloperがサービスメソッドの例外で大きすぎるコードを提供しました。ここで、JSFファイルを小さなファイルに分割したいと思います。分割中に私はいくつかの助けと提案が必要です。
ページ全体が単一のBeanにバインドされるため、Beanを分割する必要もありますか?そうでない場合、これを克服する方法は?JSFファイルを分割してメインページに含めるための最良の方法は何ですか?
Bean を分割する必要はありません。インクルードする複数のファイルにページフラグメントを分割するだけです<jsp:include>
(@include
コンパイル時に発生するため、同じ例外が発生するためではありません!)。/WEB-INF
エンドユーザーによる直接アクセスを防ぐために、これらのインクルード ファイルをフォルダーに保存する必要があることに注意してください。
したがって、この「非常に大きな」ページの例を考えると、
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>
large chunk 1
</div>
<div>
large chunk 2
</div>
<div>
large chunk 3
</div>
</body>
</html>
Bean を保持したまま、次のように分割できます。
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<jsp:include page="/WEB-INF/includes/include1.jsp" />
<jsp:include page="/WEB-INF/includes/include2.jsp" />
<jsp:include page="/WEB-INF/includes/include3.jsp" />
</body>
</html>
と/WEB-INF/includes/include1.jsp
:
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<div>
large chunk 1
</div>
と/WEB-INF/includes/include2.jsp
:
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<div>
large chunk 2
</div>
と/WEB-INF/includes/include3.jsp
:
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<div>
large chunk 3
</div>