【问题标题】:Passing selected item to ajax function将所选项目传递给ajax函数
【发布时间】:2011-10-25 00:12:06
【问题描述】:
<a4j:jsFunction name="addTag" action="#{serverBean.irrelevantMethod(_tagId)}">
   <a4j:param name="param1" assignTo="#{_tagId}"/>
</a4j:jsFunction>

<rich:autocomplete autocompleteList="#{tags}" mode="ajax" var="_tag" 
                   fetchValue="#{_tag.id}" onselectitem="addTag();" />

问题与onselectitem有关:如何将选中的item,应该是_tag.id,作为参数传给jsFunction 'addTag'?

我试过了:

onselectitem="addTag('#{_tag.id}')"

但它不起作用。

我想要的是在发生自动完成选择时将所选标签(其 ID)发送到服务器。如果上述尝试注定失败,那么实现这一目标的最佳方法是什么。

【问题讨论】:

  • 抛出了哪个异常,您现在使用的是哪个版本的 EL 表达式?

标签: jsf-2 richfaces ajax4jsf


【解决方案1】:

我不相信有办法传递这样的参数,但 action="#{irrelevantMethod(_tagId)}" 肯定行不通。它会尝试在服务器上找到它。

【讨论】:

  • 应该是:#{serverBean.irrelevantMethod(_tagId)} 它是一个服务器 bean,这是 a4j:jsFunction 的全部要点,用于制作一个 javascript 包装器来调用服务器方法.那我该怎么办呢?自动完成事件“onselectitem”发生时发送选定的tagId?
  • 好吧,serverBean.irrelevantMethod(_tagId) 更有意义。我认为您以前没有 serverBean 。为什么不直接将 a4j:support 添加到 rich:suggestionbox 并以这种方式将数据发送到服务器?
  • 我确实没有。出于这个原因,它被命名为“无关紧要” :) 抱歉混淆了。我使用 RichFaces 4 顺便说一句,所以 a4j:ajax 和 rich:autocomplete 是我需要的。我实际上改变了一些方法,我不再有自动完成功能了。好吧,我仍然有一些我想解决的问题,但需要另一个帖子。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2013-02-05
  • 2013-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多