3

Java と Seam (および JSF 1.2) を使用して Web アプリを構築することを学びました。

しかし今、私は純粋な Java EE 6 と JSF (Mojara 2.0.9) を使って作業しています - 余分なフレームワークはありません。

Seam ではindex.xhtmlindex.page.xmlfor 制限に使用しました:

<restrict>#{authorizationManager.isAdmin()}</restrict>

page.xml のような同等の機能はありますか?

そして:
私はまた、次のindex.page.xmlようないくつかの呼び出しを行うために使用しました:

<action execute="#{indexController.doSomething()}" on-postback="false"/>

@PostConstruct.xhtml のコントローラーで それを行う唯一のチャンスは今ですか?

また、私はどのようにしてこのようなことをしていpage.xmlますか?

<navigation>
    <rule if-outcome="OK">
        <redirect view-id="/pages/index.xhtml" />
    </rule>
</navigation>

私には思えますが、純粋な JavaEE の動作はまったく異なるのでしょうか?

(完全なコードを送る必要はありません。Google で調べなければならないキーワードを教えてください。ありがとう!)

4

1 に答える 1

5

Seamでは、index.xhtmlでindex.page.xmlを制限に使用しました。

<restrict>#{authorizationManager.isAdmin()}</restrict>

page.xmlのような同等の関数はありますか?

標準JSFは、組み込みの認証/承認機能を提供していません。すべて「生の」サーブレットAPIまたはSpringSecurityなどのサードパーティフレームワークから使用されます。

「生の」サーブレットAPI機能に関しては、<security-constraint>インweb.xmlが近づいています。のようなグローバルURLパターンにのみ制限でき/app/*、ページごとまたはアクションごとには制限できません。


また、index.page.xmlを使用して、次のような呼び出しを行いました。

 <action execute="#{indexController.doSomething()}" on-postback="false"/>

.xhtmlのコントローラーで@PostConstructを使用してそれを行う唯一のチャンスですか?

<f:event>XHTMLページ自体のが近くにあります:

<f:event type="preRenderView" listener="#{indexController.doSomething}" />

on-postback置換については、ポストバックでf:event type = "preRenderView"リスナーを無効にすることは可能ですか?をチェックしてください。。


また、page.xmlなしでこのようなことをどのように行っていますか?

<navigation>
    <rule if-outcome="OK">
        <redirect view-id="/pages/index.xhtml" />
    </rule>
</navigation>

私には、純粋なJavaEEの動作はまったく異なるように思われますか?

JSF 2.0は暗黙のナビゲーションをサポートしているため<navigation-rule>faces-config.xml完全に不要になります。返された結果は、ターゲットビューIDとして暗黙的に扱われます。faces-redirect=true結果のクエリ文字列にパラメータを追加することで、リダイレクトを実行できます。例えば

public String submit() {
    // ...

    return "/pages/index.xhtml?faces-redirect=true";
}

参照:

于 2012-03-01T19:57:41.083 に答える