PrettyFacesとPrimeFacesを使用したアプリケーションがあります。URLパターンを使用して1つのページにアクセスします/#{ location : navigationBean.location }/#{ year : navigationBean.year }
。
そのページには、p:selectOneMenu
場所の可能な値が含まれています。このメニューを変更した場合、同じ年と新しい場所でページを更新したいと思います。
p:commandButton
AJAXを使用してnavigationBeanで場所を設定し、結果pretty:view
(view
url-mapping id)でaを押すことでこれをテストしました。これは機能しますが、ボタンを削除したいと思います。
次のことを試しましたが、残念ながら、メソッドのreturnStringはナビゲーションを実行しません。
JSF:
<p:selectOneMenu value="#{navigationBean.location}">
<p:ajax listener="#{navigationBean.navigate}"/>
<f:selectItems value="#{locationBean.locations}"/>
</p:selectOneMenu>
バッキングビーン:
public String navigate(AjaxBehaviorEvent event)
{
return (location != null) ? "pretty:view" : null;
}
PrettyFaces構成:
<url-mapping id="view">
<pattern value="/#{ location : navigationBean.location }/#{ /\\d{4}/ year : navigationBean.year }/"/>
<view-id value="/view.xhtml"/>
</url-mapping>