4

JSFで1つの問題が発生しています。URLに基​​づいてバッキングBeanのメソッドを呼び出す方法はありますか?Strutsを使用するstructs-configと、アクションクラスでそれを達成できました。StrutsからJSFに移行するとき、この問題に直面しています。

4

2 に答える 2

4

JSFナビゲーションを大幅に改善するPrettyFacesを使用できます。わかりやすくブックマーク可能なRESTURLを使用できるようにします。

Servlet 3.0を使用している場合は、PrettyFaces jarをWebアプリに追加し、管理対象Beanにページマッピングで注釈を付け、特定のマッピングのアクションを選択するだけです。

import com.ocpsoft.pretty.faces.annotation.URLAction;
import com.ocpsoft.pretty.faces.annotation.URLMapping;
import com.ocpsoft.pretty.faces.annotation.URLMappings;

@ManagedBean(name = "pageViewBean")
@URLMappings(mappings = {
    @URLMapping(id = "myAction",
    pattern = "/page/myAction", // URL mapped to jsf file
    viewId = "/page.xhtml"),    // jsf file
    @URLMapping(id = "myAction2",
    pattern = "/page/myAction2", // URL mapped to jsf file
    viewId = "/page.xhtml")})    // jsf file
public class PageViewBean
{

    @URLAction(mappingId = "myAction") // action for URL /page/myAction
    public void myAction()
    {
        ...
    }


    @URLAction(mappingId = "myAction2") // action for URL /page/myAction2
    public void myAction2()
    {
        ...
    }

それで全部です。

于 2013-02-26T12:44:30.163 に答える
2

を使用でき<f:event type="preRenderView" />ます。ページがレンダリングされるたびに呼び出され、<h:head>タグの上に配置します

例えば:

<f:event listener="#{myBean.myAction}" type="preRenderView" />
<h:head>
...
</h:head>
<h:body>
...

そしてあなたの豆の中:

public void myAction(ComponentSystemEvent event){
    ...
}
于 2013-02-26T12:20:36.900 に答える