我想知道如何在动作调用中重定向到同一页面。
我有这个命令按钮:
<h:commandButton action="#{someBean.edit}" value="Edit" />
这是行动:
@Named
@RequestScoped
public class SomeBean {
public String edit() {
// some logic
return "theSamePage?faces-redirect=true";
}
}
但它没有重定向到同一页面,它只是刷新它所以当我尝试通过按F5键刷新页面时,会发生重复提交。在正常情况下,这可以通过post / redirect / get来解决。但是当action方法返回与发送请求的页面的viewId相同的viewId时,faces将不会发送重定向。
我使用prettyfaces。
答案 0 :(得分:5)
return "pretty:";
几乎是你需要的。
答案 1 :(得分:0)
我做了一些搜索并重写了我的答案:
您可以通过以下方式获得漂亮面孔中的视图ID:
PrettyContext prettyContext = PrettyContext.newInstance((HttpServletRequest) request);
String viewId = prettyContext.getCurrentCalculatedViewId();
检查以获取更多信息:https://groups.google.com/group/prettyfaces-users/browse_thread/thread/f50482709d7ec69b?pli=1