使用JSF2.2我尝试在404错误页面上使用h:commandButton。由于它是应用程序的错误页面,因此POST操作不会路由到辅助bean。 Tomcat只返回404。
在我的404.xhtml中:
<h:form id="myform">
<h:commandButton action="#{backingBean.execute}" value="buttontext" />
</h:form>
我的支持bean:
@ManagedBean
@SessionScoped
public class BackingBean{
public String execute() {
doSomething();
return "newTargetPage";
}
}
在我的web.xml中:
<error-page>
<error-code>404</error-code>
<location>/404.xhtml</location>
</error-page>
调用URL http :: // localhost / myapp / invalidurl我得到以下html代码:
<form id="myform" action="/myapp/invalidurl " method="post">
<input id="myform:execute" name="myform:execute"
type="submit" value="buttontext" />
</form>
由于帖子的目标指向不存在的页面,tomcat会将我重定向到404页面并忘记实际的帖子操作。
如果我将所有代码转移到普通页面,它就可以正常工作。
是否可以告诉JSF表单的目标页面? 是否可以使用h:按钮调用操作?