1
也许我在这里失去了一些东西。JSF查看参数仅适用于同一页面
我有一个菜单模板,使用选项P将参数到JSF页面:
<rich:menuItem label="Todos" action="#{mainMenuCtrl.listTickets}">
<f:param name="baseLocation" value=""/>
<f:param name="ticketStatus" value="Solicitado"/>
</rich:menuItem>
<rich:menuItem label="H. General" action="#{mainMenuCtrl.listTickets}">
<f:param name="baseLocation" value="HGN"/>
<f:param name="ticketStatus" value="Solicitado"/>
</rich:menuItem>
控制器只是重定向页面:
public String listTickets() {
return "ticketsList.xhtml?faces-redirect=true&includeViewParams=true";
}
而且ticketsList.xhtml有metadata
部分:
<f:metadata>
<f:viewParam name="baseLocation" value="#{ticketsListCtrl.baseLocation}" converter="es.caib.gesma.gesman.data.converter.LocationConverterByShortCode"/>
<f:viewParam name="ticketStatus" value="#{ticketsListCtrl.ticketStatus}" converter="es.caib.gesma.gesman.data.converter.TicketStatusConverter"/>
<f:event type="preRenderView" listener="#{ticketsListCtrl.retrieveTickets()}" />
</f:metadata>
问题是,当我在另一个页面(index.xhtml
)使用相同的模板,点击任何菜单项会驱动我ticketsList.xhtml
但两个参数都是空的。
../ticketsList.xhtml?baseLocation=&ticketStatus=
当我从ticketsList.xhtml
单击相同的项目,它显示了正确的网址,并从有什么好的工作。
../ticketsList.xhtml?baseLocation=HGN&ticketStatus=Solicitado
任何人都可以指向我为什么浏览参数从其他页面点击时丢失?
在此先感谢。
有几个页面(还有更多未来)和从http://stackoverflow.com/questions/7344056/jsf2-how-achieve-site-wide-viewparam-handling-policy-using-a-template看来我不能把它放在模板中。剩下的唯一选择是'ManagedProperty'? – SJuan76
这是最好的选择,是的。最好的办法是为此设计一个单独/不同的请求作用域bean。 – BalusC
“独立/独立请求作用域bean”意味着一个只有两个参数的bean才能被接收页面的bean使用?否则我不明白。 – SJuan76