它不会帮助您在客户端上建立链接,但请注意outputLink。
导航规则有一个重定向元素,可以帮助解决一些刷新问题。
<navigation-rule>
<display-name>navBack</display-name>
<from-view-id>/navBack.jsp</from-view-id>
<navigation-case>
<from-outcome>navTo</from-outcome>
<to-view-id>/navTo.jsp</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
如果一切都失败了,您可以自己执行重定向 URL,如下所示:
public String doAction() {
System.out.println("Did some non-idempotent operation");
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext extContext = context.getExternalContext();
Application app = context.getApplication();
ViewHandler viewHandler = app.getViewHandler();
String url = viewHandler.getActionURL(context, "/navTo.jsp");
url = url + (url.indexOf('?') < 0 ? '?' : '+') + "foo=bar";
url = extContext.encodeResourceURL(url);
try {
extContext.redirect(url);
} catch (IOException e) {
throw new FacesException(e);
}
return null;
}
警告:我不记得我是否正确编码了 URL。
各种 3rd 方库添加了不同的功能过剩。我不确定 JSF 2.0 在这方面是否做了任何事情,但可能值得一看。