RichFaces ajax不起作用

时间:2013-07-06 16:40:05

标签: ajax richfaces

我正在尝试使用来自commandButton展示的示例。

但是当我这样做时:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:f="http://java.sun.com/jsf/core">

    <h:head>
        <title>Rich Teste</title>
    </h:head>
    <h:body>
        <h:outputStylesheet>
            form {
                background: #fee3ad
            }
        </h:outputStylesheet>
        <h:form id="iddoform" >
            <h:panelGrid columns="3">
                <h:outputText value="Nome:" />
                <h:inputText value="#{testeBean.nome}"/>
                <a4j:commandButton  value="Teste" render="iddoform:out" execute="@form" />
            </h:panelGrid>
           <br />
           <a4j:outputPanel id="out">
                <h:outputText value="Hello #{testeBean.nome} !"/>
           </a4j:outputPanel>
        </h:form>
        <br />
        <a4j:log /> 
    </h:body>
    </html>

它不起作用,所以我改为:

  <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:rich="http://richfaces.org/rich"
        xmlns:a4j="http://richfaces.org/a4j"
        xmlns:f="http://java.sun.com/jsf/core">

    <h:outputStylesheet>
        form {
            background: #fee3ad
        }
    </h:outputStylesheet>

    <h:form id="iddoform">
        <h:panelGrid columns="3">
            <h:outputText value="Nome:" />
            <h:inputText value="#{testeBean.nome}" />
            <a4j:commandButton value="Teste"
                render="iddoform:out" execute="@form" />
        </h:panelGrid>
        <br />
        <a4j:outputPanel id="out">
            <h:outputText value="Hello #{testeBean.nome} !" />
        </a4j:outputPanel>
    </h:form>
    </html>
enter code here

它有效!

改变是从html中移除头部和身体。

我的问题是:'为什么不使用头部和身体标签?'。

PS:我尝试使用render =“iddoform:out”,:iddoform:out and out;我也会立即尝试,但不要工作。

1 个答案:

答案 0 :(得分:0)

当你说“它不起作用”时,你必须说你期望它如何发挥作用。

不是<h:head><h:body>使其无效,而是immediate="true"。它使得在设置名称之前处理按钮操作。你在第二个例子中没有它,这就是它起作用的原因。

此外,您不必使用iddoform:out指向面板,只需out即可,引擎会找到它。

相关问题