-2

在我看来,p:inputText不支持通过f:param. 这是真的?

如果是,我该如何传递参数?

更详细地
说,我有一个通过以下方式生成的 inputText 字段列表:

<p:dataTable value="#{EncryptionBean.epList}" var="item">
  <p:column>
  ...
     <p:inputText value="#{item.APID}" valueChangeListener="#{EncryptionBean.listenerApid}">
         <f:param value="#{item.presetName}" name="whoLaunched"/>
     <p:inputText>
  </p:column>    
<(p:dataTable>

EncryptionBean.epList当我捕获值更改侦听器时,我需要知道inputText属于哪个。我通常这样做:

ExternalContext ec; 
...
String value = (String)ec.getRequestParameterMap().get("whoLaunched");

...但它不起作用inputText(例如它适用commandLink于)。

基本上,我如何将item.presetNameitemText 值 ( item.APID) 一起传递给侦听器?我需要将这两个保存在地图中。

4

1 回答 1

1

这有效:

xhtml:

<p:inputText value="#{item.APID}">
    <p:ajax listener="#{EncryptionBean.listenerApid( item.presetName, item.APID )}"/>              
</p:inputText>

爪哇豆:

public void listenerApid( String presetName, String typedAPID )
{       
    // Do something with values.
}

令人难以置信的是,传递这些值是多么容易,只需使用ajax listener参数而不是valueChangeListener.

于 2012-12-20T16:56:23.660 回答