【发布时间】:2019-01-06 09:05:28
【问题描述】:
我有一个 jsf 页面。我想在每次刷新页面时重新加载页面
我试过这段代码,但它不起作用
public String onload() {
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
String id = viewRoot.getViewId();
if(previousPage!=null && previousPage.equals(id)){
return "brcmBuildSheet?faces-redirect=true";
}
previousPage = id;
return "";
}
所以我决定用数字来表示它是否已经加载。
public String onload() {
if (previousViewID !=nextViewID ){
nextViewID=0;
System.out.println("reload");
return "brcmBuildSheet?faces-redirect=true"; //brcmBuildSheet?faces-redirect=true
}
++nextViewID;
System.out.println("first page");
return "First page, but increment value for reload";
}
这是我的 jsf 页面
<f:metadata>
<f:viewParam name="foo" value="#{bean.foo}" />
<f:viewAction action="#{buildsheetController.onload}" />
</f:metadata>
我收到了这个错误
JSF1095: The response was already committed by the time we tried to set the outgoing cookie for the flash. Any values stored to the flash will not be available on the next request.
更新:当我将第二个返回值设置为 null 时,它给了我这个错误
2018-07-30T14:57:52.975+0800|Severe: JSF1094: Could not decode flash data from incoming cookie value Invalid characters in decrypted value. Processing will continue, but the flash is unavailable for this request.
【问题讨论】:
-
有几件事,1:你的标题有点不清楚。 'onload' 是您的方法名称,实际上,您的 viewAction 有问题。 2:返回
"brcmBuildSheet?faces-redirect=true""或"First page, but increment value for reload"很奇怪。 3:在这个问题中没有任何与 PrimeFaces 或 eclipse 相关的内容,而 java-ee 的范围很广。 4:“我想在每次刷新页面时重新加载页面”我不清楚。你的意思是你不希望它被缓存? -
每当我执行搜索功能时,每次刷新表格后我的结果都保持不变。每次刷新页面时,我都想再次检索一个全新的 buildsheetList。我发现了我的问题,我意识到这是由于返回值。
标签: jsf viewaction