1

我正在尝试使用 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; 我也在尝试立即正确,但不工作。

4

1 回答 1

0

当您说“它不起作用”时,您必须说出您期望它如何起作用。

不是<h:head>and<h:body>导致它不起作用,而是immediate="true". 它使按钮动作在设置名称之前被处理。您在第二个示例中没有它,这就是它起作用的原因。

你也不必使用iddoform:out指向面板,就out足够了,引擎会找到它。

于 2013-07-09T09:07:58.033 回答