lof*_* in 4 java primefaces jsf-2 prettyfaces
我有一个用户列表(dataTable中有一个链接userId指向一个/user/view/{userId}).点击此userId链接后,浏览器将按预期重定向到"查看"页面.
我有一个页面接受http://localhost:8080/user/view/1第一个用户和http://localhost:8080/user/view/2第二个用户的网址格式,但我不知道userId如果这个页面加载后如何使用该值.
如何使用PrettyFaces URLRewriteFilter实现这一目标?#{bean.userId}一旦PrettyFaces在访问页面时注入了它,我如何使用支持bean 的值(1,2等)加载数据.谁能解释一下?
<url-mapping id="view">
<pattern value="/user/view/#{bean.userId}/" />
<view-id value="/userview.jsf" />
</url-mapping>
Run Code Online (Sandbox Code Playgroud)
我正在使用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";
}
}
Run Code Online (Sandbox Code Playgroud)
其次,您需要添加<action>到您的URL映射:
<url-mapping id="view">
<pattern value="/user/view/#{bean.userId}/" />
<view-id value="/userview.jsf" />
<action>#{bean.loadLoggedUser}</action>
</url-mapping>
Run Code Online (Sandbox Code Playgroud)
这里我们定义了一个在bean上执行的页面操作#{bean.loadLoggedUser},当请求匹配我们的模式的URL时.例如:/user/view/2.