繁体   English   中英

我可以将selectOneMenu表示的对象添加到JSF中bean的集合中吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM