如何/什么是将字符串列表从jsf传递到辅助bean的最佳方法

时间:2011-12-22 02:50:19

标签: java jsf

以下是我的表现方式。必须有更好的方法..我希望。

我正在使用jsf数据表来显示我的数据。每行的第一列是一个复选框。

可以选择多个复选框。当我按下提交按钮时,我正在使用javascript / jquery获取所有选中的复选框,并获取该行ID作为字符串。

在我的js中,我将所有ID连接成一个字符串,用逗号分隔它们。然后我将jsf / jsp页面上隐藏输入的值设置为连接字符串。在支持bean中,我从字符串中提取所有这些ID,并创建一个字符串列表。

我希望能够在我的javascript中创建列表,以某种方式将字符串列表传递给支持bean,可能仍然隐藏输入,并避免字符串连接。

如果重要的话,我正在使用jsf1.2。

感谢您的建议。代码示例表示赞赏,但不是必需的。

1 个答案:

答案 0 :(得分:1)

你可以让JS填一个<h:inputHidden>

<h:form id="form">
    <h:inputHidden id="ids" value="#{bean.ids}" />
    // ...

document.getElementById("form:ids").value = yourCommaSeparatedString;

您可以创建一个Converter,将逗号分隔String转换为String[],反之亦然,这样您就可以ids String[]属性。您可以在此处找到一个基本示例:taking multiple values from inputText field separated by commas in JSF


对于具体问题,

无关,这有点骇人听闻。只需将<h:selectBooleanCheckbox>Map<Long, Boolean>或其他内容一起使用即可。这样你就不需要抛出任何JS代码了。另请参阅How to select multiple rows of <h:dataTable> with <h:selectBooleanCheckbox>