3

最初は JSF 1.x と JSP で作成された Web アプリケーションを JSF 2 (myFaces 2.1.7) と Facelets に移行する準備をしています。また、JSF 2.0 のデフォルト ビューであり、RichFaces 4 などのライブラリでも必要であるため、Facelets に移行する理由もあります。

まず、コードの移行に役立つガイドとして、次のドキュメントに従っています。

JSP から Facelets への移行

関連する複雑さに関しては、上記のリンクの移行パスに基づいて、それほど複雑ではないようです。リンクは全体像ではありませんか?

また、私の現在のコードには、次のような多くのスクリプトレットがあります

    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %> 

次にbasePath、ページ内のさまざまな場所で使用されます。たとえば、新しいページを開く JavaScript 関数とbasePath + newPage.faces、hiddenInput から取得したドキュメント ID です。

Faceletsを使用すると、上記をどのようにアーカイブできますか?

4

1 に答える 1

4

関連する複雑さに関しては、上記のリンクの移行パスに基づいて、それほど複雑ではないようです。リンクは全体像ではありませんか?

この回答でより詳細な情報を見つけることができます: Migrating from JSF 1.2 to JSF 2.0


また、私の現在のコードには、次のような多くのスクリプトレットがあります

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> 

次に、basePathページ内のさまざまな場所で使用されます。たとえば、新しいページを開く JavaScript 関数と、basePathhiddenInput から取得した newPage.faces およびドキュメント ID です。

Faceletsを使用すると、上記をどのようにアーカイブできますか?

ちょうど<ui:param>とEL。

<ui:param name="path" value="#{request.contextPath}" />
<ui:param name="basePath" value="#{request.requestURL.substring(0, request.requestURL.length() - request.requestURI.length())}#{path}/" />

#{path}およびとして利用できます#{basePath}

window.location = '#{basePath}newpage.xhtml?id=' + encodeURIComponent(someparam);

#{basePath}したがって、これには、アプローチに反して不要なポート番号が含まれていないことに注意してください。ベース URL を取得する方法も参照してください。

于 2012-05-12T02:48:08.543 に答える