gpt4 book ai didi

java - 如何处理 backing bean 中的 prettyfaces 'query-param'?

转载 作者:搜寻专家 更新时间:2023-11-01 02:31:07 24 4
gpt4 key购买 nike

我有一个用户列表(dataTable,userId 上的链接指向 /user/view/{userId})。单击此 userId 链接时,浏览器会按预期重定向到“查看”页面。

我有一个页面接受第一个用户的 url 模式 http://localhost:8080/user/view/1http://localhost:8080/user/view/2 用于第二个等,但我不知道如何在加载此页面后使用 userId 值。

如何使用 PrettyFaces URLRewriteFilter 实现此目的? ?一旦 PrettyFaces 在访问页面时注入(inject)数据,我如何使用 #{bean.userId}(1,2 等)的值从支持 bean 加载数据。谁能解释一下?

<url-mapping id="view">
<pattern value="/user/view/#{bean.userId}/" />
<view-id value="/userview.jsf" />
</url-mapping>

我正在使用 JSF2+Primefaces.3.0.M3+Prettyfaces-jsf2.3.3.2 和 GAE。

最佳答案

您需要一个页面加载操作,由 <action> 指定URL 映射配置中的元素。首先,您的 bean 中需要一个方法,如下所示:

@Named("bean")
@RequestScoped
public class LoginBean {

public String loadLoggedUser() {
if ( userId != null ) {
this.user = user.findById(userId);
return null;
}
return "failure";
}
}

其次,您需要添加 <action>到您的网址映射:

<url-mapping id="view">
<pattern value="/user/view/#{bean.userId}/" />
<view-id value="/userview.jsf" />
<action>#{bean.loadLoggedUser}</action>
</url-mapping>

这里我们定义了一个要在 bean 上执行的页面操作,#{bean.loadLoggedUser} ,当请求与我们的模式匹配的 URL 时。例如:/user/view/2 .

关于java - 如何处理 backing bean 中的 prettyfaces 'query-param'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9076947/

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