アクターをリストした表があります。このページは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リクエストでこれを行うにはどうすればよいですか?