p:menuItem でこの問題が発生しました - PF 3.3.1、PrettyFaces 3.3.3、および JSF/Mojarra2.1 を使用しています。
したがって、現在のページから「ID」パラメーターを渡す必要がある p:menuItems のセットがあります。ただし、/page/targetPage?id=id&faces-redirect=true という形式の URL を作成したくありません。私がやりたいことは、ページ アクション ハンドラで、問題の URL にリダイレクトすることです。ただし、問題は、結果のリダイレクトが最後に windowId を添付し、targetURL にアクセスできないことです!
私のフェイスレットで:
<p:menuitem action="#{myActions.performAction}" ajax="false" value="navigateToThisAction"/>
私のバッキングビーンで:
public String performAction() {
return navigate("pretty:myAction");
}
protected String navigate(String mappingId) {
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
PrettyContext context = PrettyContext.getCurrentInstance(request);
PrettyURLBuilder builder = new PrettyURLBuilder();
UrlMapping mapping = context.getConfig().getMappingById(mappingId);
String targetURL = builder.build(mapping, true, getId());
try {
FacesContext.getCurrentInstance().getExternalContext().redirect(targetURL);
} catch (IOException ioe) {
System.out.println("Error redirecting..." + ioe.getMessage());
}
return null;
}