java – 如何在支持bean中处理prettyfaces的“query-param”?
作者:互联网
我有一个用户列表(dataTable,userId上的链接指向/ user / view / {userId}).单击此userId链接后,浏览器将按预期重定向到“视图”页面.
我有一个页面接受第一个用户的URL模式http:// localhost:8080 / user / view / 1和第二个用户的http:// localhost:8080 / user / view / 2,但我不知道加载此页面后如何使用userId值.
如何用PrettyFaces URLRewriteFilter实现这一目标?一旦PrettyFaces在访问页面时注入了它,我怎么能使用来自支持bean的#{bean.userId}(1,2等)的值来加载数据.谁能解释一下?
<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映射:
<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,jsf-2,primefaces,prettyfaces 来源: https://codeday.me/bug/20190621/1251306.html