3

所以我有一个名为 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,我试图从组件本身获取值。

所以我猜你不能这样做,但是你是怎么做到的呢?

可能吗?

4

1 回答 1

2

将组件绑定到视图(在<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)}" />
于 2012-02-21T16:28:44.820 回答