提交表单后无需导航/刷新

时间:2014-03-06 11:42:40

标签: jsf-2.2

这是一个非常简单的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();}
}

0 个答案:

没有答案