Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 JSF2命令按钮操作请求参数_Jsf 2_Request_Parameter Passing - Fatal编程技术网

Jsf 2 JSF2命令按钮操作请求参数

Jsf 2 JSF2命令按钮操作请求参数,jsf-2,request,parameter-passing,Jsf 2,Request,Parameter Passing,我不能让上面的工作…当你点击按钮时,参数似乎被设置为空。有办法解决这个问题吗 是否有其他方法将URL参数传递到action方法中?我正在使用Spring EL resolver,这限制了我将参数传递到bean中的能力,因为我没有使用faces config。首先,我认为您可以更好地使用JSF,很多问题会简单得多。看起来您正在使用JSF作为请求/响应框架,就像Struts一样。JSF是一个面向对象的组件框架,您应该以这种方式使用它来充分利用它 我会尽力解决你的问题,但我缺少一些关于你在做什么的信息

我不能让上面的工作…当你点击按钮时,参数似乎被设置为空。有办法解决这个问题吗


是否有其他方法将URL参数传递到action方法中?我正在使用Spring EL resolver,这限制了我将参数传递到bean中的能力,因为我没有使用faces config。

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

我会尽力解决你的问题,但我缺少一些关于你在做什么的信息

如果您有可以订购的书籍列表,假设它们显示在数据表中(您可以使用ui:repeat):


在OrderBean中,您只需将一本书(或任何东西)作为参数。您不需要处理请求/响应周期,当然不需要在视图中处理

如果需要立即在购物车中显示,可以使用f:ajax标记


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

谢谢,但我更喜欢通过URL控制状态,以便使用浏览器后退按钮进行书签和导航。对上面的问题有什么想法吗?干杯。也许可以尝试一个没有Spring的简单示例应用程序,看看它是否是罪魁祸首。可能使用f:viewParam在页面加载时获取真实对象。或者漂亮的脸。
<h:commandButton value="Add Order"  action="#{orderBasket.addItems(param['orderItemId'])}"/>
<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>