Имя переменной в EL Expression 2.2 - PullRequest
1 голос
/ 02 февраля 2012

Я чувствую себя немного глупо: я использую Primefaces на Tomcat 7 и хотел бы использовать эти причудливые новые выражения EL, чтобы уменьшить помехи в коде.Я понял, как это сделать в таблицах данных, но я не могу заставить его работать с повторяющимися структурами отлива, которые имеют эти удобные var атрибуты.Как бы я объявил параметр EL для grantRole(String) значением inputText?

<h:panelGrid columns="3">
    <h:outputText value="Name" />
    <p:inputText/>
    <p:commandButton value="Add" update="associatedPlayers" 
       action="#{permissionRoleDetailBean.grantRole(associatePlayerName)}" />
</h:panelGrid>

1 Ответ

4 голосов
/ 02 февраля 2012

Вы можете сделать это:

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