在我看来,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.presetName
与itemText值(item.APID
)一起传递给侦听器?我需要在地图中保存这两个。
答案 0 :(得分:1)
这有效:
HTML:
<p:inputText value="#{item.APID}">
<p:ajax listener="#{EncryptionBean.listenerApid( item.presetName, item.APID )}"/>
</p:inputText>
javabean:
public void listenerApid( String presetName, String typedAPID )
{
// Do something with values.
}
传递这些值的难易程度令人难以置信,只需使用ajax listener
而不是valueChangeListener
。