将字符串列表传递给jsf bean

时间:2010-12-06 21:08:27

标签: jsf-2 glassfish-3 variadic-functions

在我的JSF文件中,我有一个如下所示的命令按钮:

'< h:commandButton value =“开始”。行动= '#{myBean.startIt}'/>

startIt()是一个没有参数的方法,它有一个字符串的硬编码ArrayList。

我真正想做的是将可变数量的字符串传递给startIt()和 摆脱硬编码。

如果我尝试使用“vararg”语法,例如

public void startIt(String ... myStrings){ ...}

当我使用偶数单个字符串调用函数时出现以下错误:

错误的参数数量错误的参数数量 class java.lang.IllegalArgumentException

关于如何让varargs与JSF 2一起工作的任何想法,或者对此失败,我们将非常感谢另一种解决潜在问题的方法。

感谢。

1 个答案:

答案 0 :(得分:0)

通过在f​​:param元素中指定值,然后在辅助bean中重新执行该值,可以实现此方法之一:

<h:commandLink actionListener="#{myBean.startIt}">
    <f:param name="request" value="AnyValue"/>
</h:commandLink>

支持Bean代码:

String request= (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("request");