JSF2 CommandButton Action请求参数

时间:2011-05-12 06:05:12

标签: jsf-2 request parameter-passing

<h:commandButton value="Add Order"  action="#{orderBasket.addItems(param['orderItemId'])}"/>

我无法使上述工作......当你点击按钮时,param似乎被设置为null。有没有解决的办法?

是否有另一种方法将URL参数传递给动作方法?我正在使用Spring EL解析器,这限制了我将参数传入bean的能力,因为我没有使用faces-config。

1 个答案:

答案 0 :(得分:2)

首先,我认为你可以更好地使用JSF,很多问题会简单得多。看起来您正在使用JSF作为请求/响应框架,如Struts。 JSF是一个面向对象的组件框架,你应该以这种方式使用它来充分利用它。

我会尽力解决你的问题,但我错过了一些关于你在做什么的信息。

如果您有可以订购的书籍清单,请说它们显示在数据表中(您可以使用ui:重复):

<h:dataTable value="#{bookController.books}" var="book">

    <h:column>
        <h:outputText value="#{book.title}" />
    </h:column>

    <h:column>
        <h:commandButton value="Add Order" action="#{orderBasket.addItems(book)}" />
    </h:column>

</h:dataTable>

在orderBasket支持bean中,您只需将Book(或其他)作为参数。您无需处理请求/响应周期,当然也不需要处理您的视图。

如果您需要立即在购物车中显示,请使用f:ajax标签。

如果您需要更多解释(支持bean来源或其他),请告诉我。