我正在尝试使用来自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;我也会立即尝试,但不要工作。
答案 0 :(得分:0)
当你说“它不起作用”时,你必须说你期望它如何发挥作用。
不是<h:head>
和<h:body>
使其无效,而是immediate="true"
。它使得在设置名称之前处理按钮操作。你在第二个例子中没有它,这就是它起作用的原因。
此外,您不必使用iddoform:out
指向面板,只需out
即可,引擎会找到它。