这是一个非常简单的jsf页面:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form enctype="multipart/form-data">
Hello<br/>
<h:outputText value="#{backingBean.currentTime}" />
<br/>
<h:outputText id="contatoreID" value="#{backingBean.counter}" />
<br/>
<h:commandButton value="Add" action="#{backingBean.add}">
<f:ajax render="contatoreID"/>
</h:commandButton>
<br/>
<hr/>
<h:commandButton value="Reset Counter" action="#{backingBean.resetCounter}" />
</h:form>
</h:body>
</html>
支持bean实现是微不足道的。
它有一个带有 multipart / form-data 的表单和两个按钮,一个具有ajax行为,只刷新页面中的一个组件和一个“标准”提交按钮。 如果按添加按钮,则重置计数器不会导致浏览器刷新或导航到新页面。
在互联网上进行大量搜索后,我发现了这个相关的错误报告:The combination of enctype="multipart/form-data" and ajax stops navigation in some scenarios但我不清楚它是否被认为是真正的错误或配置错误。 我正在使用最新的Mojarra 2.2.5版本。我在这个错误报告中看不到任何进展。你能建议一些解决方法吗?
此外,我最近将一个Web应用程序从Glassfish 3.1.2移到了Glassfish 4.0。它之前运作良好,而现在我正在努力解决许多与bug有关的问题,例如this on <ui:repeat>。
我知道我不能在这里提出与意见相关的问题,但我想知道我是否是唯一一个对JSF 2.2版本有不良体验的人。也许我以错误/不安全的方式使用Jsf 2.0 ......
更新
我添加了支持bean代码
@ManagedBean
@SessionScoped
public class BackingBean {
/**
* Creates a new instance of BackingBean
*/
public BackingBean() {
}
int counter = 0;
public int getCounter() {
return counter;
}
public void setCounter(int counter) {
this.counter = counter;
}
public void add()
{
counter++;
System.out.println("add called " + counter);
}
public void azzera()
{
counter =0;
System.out.println("Azzera ");
}
public String getOra() { return new Date().toString();}
}