EL表达式2.2中的变量名称

时间:2012-02-02 14:43:39

标签: jsf el

我觉得有点愚蠢:我在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>

1 个答案:

答案 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.
}