我遇到了JSF selectManyCheckbox和A4J支持的问题。目的是在选中复选框时运行某些操作。这在Firefox中完美运行。然而,当在任何IE(ie6 / ie7 / ie8)中进行测试时,发现该动作被调用但所选值被置为空。为了测试它,我放置了一个JSF commandButton来提交表单并检查所选的值并且它是正确的。所以问题实际上是在ajax动作中(没有提交表单)。 这是我的代码:
<h:selectManyCheckbox id="supportCategoryCardFilter" value="#{cardListProvider.categoriesHolder.selectedCategories}" layout="pageDirection" required="false" >
<f:selectItems value="#{cardListProvider.categoriesList}" />
<a:support ajaxSingle="true" status="statusSearchCard" id="supportCategoryCardFilter2" event="onclick" reRender="cardsHolder, renderCardsCategoriesPanel"
action="#{cardListProvider.findCards(cardListProvider.categoriesHolder.selectedCategories)}" >
</a:support>
</h:selectManyCheckbox>
其中cardListProvider.categoriesList
是List<SelectItem>
而cardListProvider.categoriesHolder.selectedCategories
是List<String>
有人有这个问题吗?谁能帮我这个? 谢谢
答案 0 :(得分:4)
您应该使用JBoss EL或声明JSF函数。 如果您使用facelets,这很简单:
public static
方法
<function>
<function-name>concat</function-name>
<function-class>com.mycompany.myproject.ServiceFunctions</function-class>
<function-signature>java.lang.String concat(java.lang.String, java.lang.String) </function-signature>
</function>
action="#{cardListProvider.findCards}"
然后在findCards()
获取this.cardListProvider.categoriesHolder.selectedCategories
< / LI>
答案 1 :(得分:1)
我很惊讶甚至可以在Firefox中使用。操作方法不支持参数。来自Richfaces文档:
signature must match java.lang.Object action()
http://livedemo.exadel.com/richfaces-demo/richfaces/support.jsf?tab=info&cid=1615759