<h:commandButton value="Add Order" action="#{orderBasket.addItems(param['orderItemId'])}"/>
我无法使上述工作......当你点击按钮时,param似乎被设置为null。有没有解决的办法?
是否有另一种方法将URL参数传递给动作方法?我正在使用Spring EL解析器,这限制了我将参数传入bean的能力,因为我没有使用faces-config。
答案 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来源或其他),请告诉我。