[英]Can I add object represented by selectOneMenu to a collection in a bean in JSF?
所以我有bean命名元素,其中包含一个类别列表,我想从下拉框中添加到该列表中。
在页面底部有一个提交,它保留了我的元素并且一切正常,我有一个转换器,用于下拉也可以工作,但我无法弄清楚如何获取类型为Category的对象我下拉并将其添加到我的bean中的类别列表中。
这是我的JSF部分,我试图通过以下方式实现这一目标:
<table>
<tr>
<th class="textRight">Choose Category</th>
<td>
<h:selectOneMenu id="currentCategory">
<f:selectItems value="#{serviceWeb.listCategories()}" />
</h:selectOneMenu>
</td>
<td>
<h:commandButton id="addCategory" value="Add"
action="element.categories.add(#{currentCategory.value})" />
</td>
</tr>
</table>
我知道这不起作用,我收到错误:
action="element.categories.add(#{currentCategory.value})" Not a Valid Method Expression
为了解释,这个菜单项没有支持bean,我试图从组件本身获取值。
所以我想你不能这样做,但你怎么做呢?
可能吗?
将组件绑定到视图(如果<h:selectOneMenu>
解析为HtmlSelectOneMenu
的实例)并使用UIInput#getValue()
作为操作方法参数并修复无效的EL语法。
<h:selectOneMenu binding="#{currentCategory}">
<f:selectItems value="#{serviceWeb.listCategories()}" />
</h:selectOneMenu>
<h:commandButton value="Add" action="#{element.categories.add(currentCategory.value)}" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.