2012-02-02 9 views
1

私は少しばかげていると感じます。私はTomcat 7でPrimefacesを使用しています。これらの派手な新しいEL式を使用してコードクラッタを減らしたいと考えています。私はデータ型でこれを行う方法を考え出しましたが、それは便利なvar属性を持つ繰り返し構造を動かすことができません。 grantRole(String)のELパラメータがinputTextの値であると宣言するにはどうすればよいですか?EL式2.2の変数名

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

答えて

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> 

しかし、これは意味がありません。私は、他のメソッド呼び出しの引数として使用されるプロパティを取り除くしよう

private String playerName; // +getter+setter 

public void grantRole() { 
    System.out.println(playerName); // Look, it's already set by JSF. 
} 
+0

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

:通常のアプローチは、次のようです。私の2番目の解決策は、私のbeanに 'playerName'プロパティを持たせることです。なぜあなたはそれを好きですか? –

+0

モデルのコントロールが失われているため、たとえば編集画面で初期化することができません。 – BalusC

+0

ああ、それはもちろん有効な点です。ただし、このような状況では、別の編集画面はありません。 –