我觉得有点愚蠢:我在Tomcat 7上使用Primefaces,并希望使用那些花哨的新EL表达式来减少代码混乱。我想出了如何在数据表中执行此操作,但我无法使用具有那些方便的var
属性的otuside重复结构。如何将grantRole(String)
的EL参数声明为inputText
的值?
<h:panelGrid columns="3">
<h:outputText value="Name" />
<p:inputText/>
<p:commandButton value="Add" update="associatedPlayers"
action="#{permissionRoleDetailBean.grantRole(associatePlayerName)}" />
</h:panelGrid>
答案 0 :(得分:4)
你可以这样做:
<h:panelGrid columns="3">
<h:outputText value="Name" />
<p:inputText binding="#{playerName}" />
<p:commandButton value="Add" update="associatedPlayers"
action="#{permissionRoleDetailBean.grantRole(playerName.value)}" />
</h:panelGrid>
然而,这没有任何意义。通常的方法如下:
<h:panelGrid columns="3">
<h:outputText value="Name" />
<p:inputText value="#{permissionRoleDetailBean.playerName}" />
<p:commandButton value="Add" update="associatedPlayers"
action="#{permissionRoleDetailBean.grantRole}" />
</h:panelGrid>
与
private String playerName; // +getter+setter
public void grantRole() {
System.out.println(playerName); // Look, it's already set by JSF.
}