0

アクターをリストした表があります。このページはactor.xhtmlです。関連する部分は次のとおりです。

<p:dataTable id="allActors" var="actor" value="#{actorTableBackingBean.allActors}">
                <p:column headerText="Actor Name" sortBy="#{actor.firstName}">
                    <h:outputText value="#{actor.firstName}"/>
                </p:column>

                <p:column headerText="Actor Detail">
                    <h:link value="Go to actor detail" outcome="actorDetail?actorId=#{actor.actorId}" />
                </p:column>

            </p:dataTable>

したがって、表の [Go To Actor Detail] リンクをクリックすると、actorDetail.xhtml?actorId=1 に正常に移動します。

そして、actorDetail.xhtml は次のとおりです。

<ui:composition template="../maintemp.xhtml">
    <f:metadata>
        <f:viewParam name="actorId" value="#{actorDetailBackingBean.actorId}" />
    </f:metadata>

    <ui:define name="mainarea">

        <div class="well" style="padding: 15px" >
            <h3>Actor Detail</h3>
        </div>
        #{actorDetailBackingBean.actorWith().firstName}
    </ui:define>
</ui:composition>

そして、ここに私の ActorDetailBackingBean.java があります:

@Named
@RequestScoped
public class ActorDetailBackingBean extends BasePage {

    @Inject
    ActorDao actorDao;

    @Inject
    Actor actor;

    private int actorId;

    public int getActorId() {
        return actorId;
    }

    public void setActorId(int actorId) {
        this.actorId = actorId;
    }

    public Actor actorWith(){
        actor = actorDao.getWithId(actorId);
        return actor;
    }
}

しかし、これはゼロデータを返します..したがって、詳細はロードされません。actorDao.getWithId はパラメータ 0 で呼び出されます。

私が見逃しているのは何ですか?

また、おまけの質問:

POSTリクエストでこれを行うにはどうすればよいですか?

4

1 に答える 1

0

私は自分の質問に答えます。

int ではなく String を Bean に渡します。今それは動作します!

于 2013-07-04T19:37:21.213 に答える