[英]How/What's the best way to pass a list of Strings from jsf to backing bean
这就是我的做法。 必须有更好的方法..我希望。
我正在使用jsf数据表来显示我的数据。 每行的第一列是一个复选框。
可以选择多个复选框。 当点击提交按钮时,我正在使用javascript / jquery来获取所有复选框,并获取该行ID(它是一个字符串)。
在我的js中,我将所有ID串联为一个字符串,并用逗号将它们分隔开。 然后,我在jsf / jsp页面上将隐藏输入的值设置为连接的字符串。 在支持bean中,我从字符串中提取所有这些ID,并创建一个字符串列表。
我希望能够在JavaScript中创建列表,以某种方式将字符串列表传递给支持bean,也许仍然隐藏输入,并避免使用字符串concat。
如果这很重要,我正在使用jsf1.2。
感谢您的建议。 代码示例值得赞赏,但不是必需的。
您可以让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[]
属性。 您可以在此处找到一个基本示例: 在JSF中,从inputText字段获取多个值,并用逗号分隔 。
与具体问题无关 ,这有点棘手。 只需将<h:selectBooleanCheckbox>
与Map<Long, Boolean>
。 这样,您无需抛出任何JS代码。 另请参阅如何使用<h:selectBooleanCheckbox>选择<h:dataTable>的多行 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.