gpt4 book ai didi

jsf - 查看不同bean中的参数

转载 作者:行者123 更新时间:2023-12-04 06:16:24 25 4
gpt4 key购买 nike

我有一个页面叫 trip.xhtml我使用以下代码从 URL 中取出参数:

<f:metadata>
<f:viewParam name="tripid" value="#{tripBean.tripId}" />
<f:viewParam name="seats" value="#{tripBean.seats}" />
<f:event type="preRenderView" listener="#{tripBean.processParams}" />
</f:metadata>
TripBean看起来像这样(简化):
@ManagedBean
@RequestScoped
public class TripBean implements Serializable {

private static final long serialVersionUID = -4885781058258859229L;

private Long tripId;
private int seats;

// Getters and setters for tripId and seats

底部 trip.xhtml页面我有 h:link :
<h:link outcome="/customer/booking.xhtml" value="Book this trip"
includeViewParams="true" />

我期望的是,当我单击此链接时得到的 URL 类似于 "/customer/booking.jsf?tripid=2&seats=1" .仅当我将以下代码放在 booking.xhtml 上时才会出现这种情况页:
<f:metadata>
<f:viewParam name="tripid" value="#{tripBean.tripId}" />
<f:viewParam name="seats" value="#{tripBean.seats}" />
</f:metadata>

虽然我真正想要的是使用另一个bean。将代码更改为:
<f:metadata>
<f:viewParam name="tripid" value="#{bookingBean.tripId}" />
<f:viewParam name="seats" value="#{bookingBean.seats}" />
</f:metadata>
BookingBean也有 2 个属性 tripIdseatsTripBean 相同,但是当我现在尝试单击链接时,我只看到一个设置为 0 的座位参数。( "/customer/booking.jsf?seats=0" )

有谁知道为什么当我尝试使用另一个 bean 来存储它们时,我似乎无法将 viewparams 传递到另一个页面?如果不可能将它存储在另一个 bean 中,我如何将这些值来自 TripBeanBookingBean ?

我使用的快速解决方法:
不使用 includeViewParams="true" ,但手动向链接添加参数(见下文)“修复”了问题。虽然我仍然想知道为什么它不适用于 includeViewParams !
<h:link outcome="/customer/booking.xhtml" value="#{msg['page.trip.booking']}">
<f:param name="tripid" value="#{tripBean.tripId}" />
<f:param name="seats" value="#{tripBean.seats}" />
</h:link>

最佳答案

f:viewParam工作原理与 h:inputText 完全一样.这意味着它使用相同的表达式作为源(渲染时)和目标(更新模型时)。如果你有:

<h:inputText value="#{a.test}" />

你永远不会问“如何让 inputTextb.foo 读取并写入 a.test ”,但每个人似乎都期待 f:viewParam 的这种行为.

无论如何,有一个简单的答案。要将任何值附加到链接,您只需要使用 f:param :
<h:link outcome="/customer/booking.xhtml" value="Book this trip" >
<f:param name="tripid" value="#{bookingBean.tripId}" />
<f:param name="seats" value="#{bookingBean.seats}" />
</h:link>

关于jsf - 查看不同bean中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com