在<a4j:outputPanel>
内,我有一个已停用的输入文字,显示属于班级Authors
的{{1}}的{{1}}。我还有一个显示作者姓名的List<Author>
。当选择菜单中的作者时,作者将被添加到我上面提到的DocumentBean
,并且会显示新的已禁用<h:selectOneMenu>
。
以下是上述代码:
List<Author>
这是insertDocController中的addAuthor():
inputtext
在同一个 Autor:
<a4j:outputPanel id="teste">
<a4j:repeat value="#{insertDocController.docController.documentBean.authorList}" var="author">
<br />
<h:inputText value="#{author.name}" disabled="true" />
<br />
<a4j:commandButton type="submit" action="#{insertDocController.removeAutor(author.uri)}"
value="Remover" render="teste" />
</a4j:repeat>
<br />
<h:selectOneMenu id="chooseAuthor" value="#{insertDocController.selectedAuthorUri}">
<f:selectItem noSelectionOption="true" itemLabel="selecione" itemValue=""/>
<f:selectItems value="#{insertDocController.authorValues}" var="author"
itemValue="#{author.uri}" itemLabel="#{author.name}"/>
</h:selectOneMenu>
<a4j:commandButton type="submit" action="#{insertDocController.addAuthor()}"
value="Inserir" render="teste" />
<br />
</a4j:outputPanel>
页面上有一个输入文本。当输入文本是这样的时候,一切都正常工作:
public void addAuthor() {
if(this.selectedAuthorUri != null) {
AuthorBean a = new AuthorBean();
a.setUri(this.selectedAuthorUri);
a.setName(this.authMapper.searchNameByAuthorUri(this.selectedAuthorUri));
this.docController.getDocumentBean().addAuthor(a);
}
}
但由于我将inputtext设置为必需并向其添加了一条消息,因此停止了正常工作,如下所示:
xhtml
在我更改标题输入文本后,当我在Title: <h:inputText id="input"
value="#{insertDocController.docController.documentBean.title}">
</h:inputText>
上选择作者时,它根本不会从 Title: <h:inputText id="input"
value="#{insertDocController.docController.documentBean.title}"
required="true" requiredMessage="Campo Obrigatorio">
<f:ajax execute="@this input" render="message" event="blur"/>
</h:inputText>
<h:message for="input" id="message" style="color:red"/>
内的<h:selectedOneMenu>
调用操作方法addAuthor()
(这是没有调用的action方法的行 - 它是从我上面给你的上面的代码中提取的):
<a4j:commandbutton>
如果我在输入文本再次开始工作之前将其打开。 可能是什么问题?谢谢!
答案 0 :(得分:2)
您需要指定execute
属性。
删除作者
<a4j:commandButton type="submit" action="#{insertDocController.removeAutor(author.uri)}"
value="Remover" render="teste" execute="@this">
</a4j:commandButton>
添加作者按钮
<a4j:commandButton type="submit" action="#{insertDocController.addAuthor()}"
value="Inserir" render="teste" execute="@this, chooseAuthor">
</a4j:commandButton>
希望它有所帮助。