2017-04-14 37 views
0

我有一个名为newTest.xhtml的页面,由一个名为NewTest的CDI Bean支持,当用户单击一个按钮时,它应该在backinhg中做一些工作bean并返回到同一页面newTest.xhtml。问题是,当我点击按钮浏览器不刷新页面。当我手动点击刷新时,浏览器刷新页面。我的问题是:在JSF我怎么能告诉浏览器总是从服务器不如何强制浏览器从服务器始终加载page.xhtml在JSF中

public String doWork() { 
     //do some work 

     return "/newTest.xhtml?faces-redirect=true"; 
    } 

固定 我以固定的问题的缓存加载页面的ajax的渲染=“@所有”

<h:commandButton > 
    <f:ajax execute="@all" render="@all"/> 
</h:commandButton> 
+1

所以有效的问题是,如何不缓存的页面。很多的问题和解答关于这个在stackoverflow – Kukeltje

+0

不,这不是我的问题。我的问题比这更具体。并且它不是重复的@BalusC这个问题 – usertest

+0

几件事情:1)问题发布的方式是重复的,2)StackOverflow的工作原理是创建**答案**,而不是编辑问题并将解决方案放在那里。 3)问题和答案有关系。你的问题和答案绝对没有任何迹象表明他们是如何相关的。 4)execute =“@ all”,render =“@ all”是一种不太常见的奇怪,在某些方面容易出错。你很可能可以更新页面的较小部分5)想知道为什么你做了一个重定向,如果你想留在同一页6)... – Kukeltje

回答

0

您可以重定向到请求页面

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext(); 
externalContext.redirect(((HttpServletRequest) externalContext.getRequest()).getRequestURI()); 
+0

我确实尝试过,但没有奏效 – usertest

相关问题