【问题标题】:Possible to pass `p:inputText` parameters via `f:param`? [closed]可以通过 `f:param` 传递 `p:inputText` 参数吗? [关闭]
【发布时间】:2012-12-08 03:24:00
【问题描述】:

在我看来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>

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

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

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

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

【问题讨论】:

  • 在未来的问题中,尝试详细阐述具体的功能需求,而不是问关于“可能的解决方案”的反问。 Stack Overflow 通常对回答“是-否”问题不感兴趣,因为这些问题可以自己轻松回答。
  • 添加了更多细节,你能看看吗?非常感谢。

标签: jsf jsf-2 primefaces


【解决方案1】:

这行得通:

xhtml:

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

java bean:

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

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

【讨论】:

  • 请注意,这已在您的其他问题中得到解答:stackoverflow.com/questions/13974989/…
  • 是的,这就是我提出(arg1, arg2) 想法的地方。感谢那。如果您想写一个更详细的答案,我很乐意在此处也将其标记为已接受?
猜你喜欢
  • 2020-02-11
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 2020-09-08
  • 2016-06-06
  • 2014-02-15
  • 1970-01-01
相关资源
最近更新 更多