编程语言
首页 > 编程语言> > java – 如何在支持bean中处理prettyfaces的“query-param”?

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