首先很抱歉我的英语不太好。我有两个JSF2页面,一个用于列出乘客,另一个用于创建/更新乘客。我也有两个@ViewScoped bean,一个用于保存乘客列表,另一个用于在页面B中保存所选乘客。我看到了通过viewParam或@ManagedProperty传递乘客的方法,但我不想编写转换器。
我想知道是否有一种方法可以在不传递乘客id并编写转换器或者不传递id并去数据库检索乘客的情况下将对象从页面A传递到页面B。我所做的并且有效的方法是:通过setPropertyActionListener在flash scope中设置所选对象,并导航到pageB,在viewScopedBean的@PostConstruct中获取flashScope并检索对象。就像我说的那样,这个方法有效,但我不知道它是否正确。以下是代码: Page A:
我想知道是否有一种方法可以在不传递乘客id并编写转换器或者不传递id并去数据库检索乘客的情况下将对象从页面A传递到页面B。我所做的并且有效的方法是:通过setPropertyActionListener在flash scope中设置所选对象,并导航到pageB,在viewScopedBean的@PostConstruct中获取flashScope并检索对象。就像我说的那样,这个方法有效,但我不知道它是否正确。以下是代码: Page A:
<p:column width="10" style="text-align: center;">
<p:commandButton icon="ui-icon-pencil" action="editClientes?faces-redirect=true">
<f:setPropertyActionListener target="#{flash.pax}" value="#{row}"/>
</p:commandButton>
</p:column>
pageB bean的@PostConstruct
@PostConstruct
private void initBean(){
this.pax = (Passenger) JSFUtils.getFlashScope().get("pax");
if(this.pax == null){
this.pax = new Passenger();
}
}
这种方法正确吗?还是编写转换器是正确的方法?谢谢。