這是我的JSF代碼: -AJAX重定向不工作
<h:commandButton id="cmdLogin" value="Login" actionListener="#{indexBean.login}">
<f:ajax execute="@form" render="@all" />
</h:commandButton>
這是indexBean我的登錄方法: -
public void login(){
HttpServletResponse objHttpServletResponse = (HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
objHttpServletResponse.sendRedirect("Restricted/Home.jsf");
}
我可以在javascript emptyResponse: An empty response was received from the server. Check server error logs.
一個警報。爲什麼這種類型的重定向不起作用?
編輯: - 有趣的是,當我從faces-config.xml重定向,它的工作原理!
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<navigation-rule>
<from-view-id>/index.xhtml</from-view-id>
<navigation-case>
<from-outcome>Home</from-outcome>
<to-view-id>/Restricted/Home.jsf</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
</faces-config>
而且很明顯,我改變了命令按鈕的actionListener
至login
action
和改變的返回類型String
和登錄方法返回home
。現在有誰可以告訴,如果這是JSF中所需的行爲?如何從faces-config.xml
重定向工作和簡單的重定向在managedbean不?