这是我的.xhtml:
<h:form id="form_edit" prependId="false">
<p:commandButton value="#{filt.add}"
ajax="true"
icon="ui-icon-plus"
update=":messages :form_edit"
oncomplete="confDlg.show()"
action="#{agentsbean.clearSelectedAgent()}"/>
</h:form>
<p:dialog id="dialogId" widgetVar="confDlg" showEffect="fold" hideEffect="fade"
appendToBody="false">
<h:form>
<p:inputText value="#{agentsbean.selectedAgent.name==null?'null':agentsbean.selectedAgent.name}"/>
<p:commandButton id="agConfirmSave" value="#{filt.save}" update=":messages @form"
actionListener="#{agentsbean.saveAgent}" oncomplete="confDlg.hide();"/>
</h:form>
</p:dialog>
actionListener saveAgent:
public void saveAgent(ActionEvent actionEvent) {
System.out.println("SaveAgent");
}
当我点击按钮(agConfirmSave) - 对话框关闭,但动作没有开始!
UPD 动作工作,如果删除p:inputText或者用h来改变它:outputText !!!但我需要在对话框中输入相同的文字......
答案 0 :(得分:2)
这不是“setter”操作的有效值表达式。
<p:inputText value="#{agentsbean.selectedAgent.name==null?'null':agentsbean.selectedAgent.name}"/>
如果您作为一名真正的开发人员付出了更多关注和喜爱服务器日志和HTTP流量监控器,那么您应该注意到ELException
/ PropertyNotWritableException
基本上已经是整个自己回答。
至于如何解决它;整个表达实际上没有任何意义。 EL已经是零安全的。摆脱不必要的条件检查:
<p:inputText value="#{agentsbean.selectedAgent.name}"/>