首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSF PhaseListener重定向到页面

使用JSF PhaseListener重定向到页面
EN

Stack Overflow用户
提问于 2013-03-29 13:47:15
回答 1查看 5.4K关注 0票数 0

场景1:如果friendlyURL是'/requestform/servicerequest‘和requestProcessorBean.userRequestVO == null,那么会话无效并重定向到'/web/pds/login’页面。

场景2:如果If friendlyURL是'/requestform/servicerequest‘和requestProcessorBean.userRequestVO != null,那么重定向到'serviceRequest.xhtml’页面。

我想知道如何使用JSF阶段侦听器实现场景1。我按照以下方式实现了场景1:requestForm.xhtml:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
    </h:head>
    <h:body>
        <h:outputFormat rendered="#{lookupBean.friendlyURL == '/requestform/servicerequest' and (requestProcessorBean.userRequestVO != null)}">
            <ui:include src="serviceRequest.xhtml" />
        </h:outputFormat>
    </h:body>
</f:view>

我正在使用Liferay6.0和JSF2.0。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-03-31 04:34:35

对于条件重定向,我真的不会推荐一个阶段侦听器。使用代替。但是,如果由于某种原因,您不得不使用phaselistener,那么您的实现如下所示:

  1. 定义一个PhaseListener如下所示 /*我们将PhaseListener定义为一个ManagedBean,以便*/ @ManagedBean(name = "thePhaseListener") @RequestScoped公共类TestPhaseListener实现PhaseListener { @ManagedProperty(value = "#{ RequestProcessorBean }")瞬态私有requestProcessorBean requestProcessorBean;@ManagedProperty(value = "#{ LookupBean }")瞬态私有lookupBean lookupBean;@Override (PhaseEvent事件){//引发新UnsupportedOperationException(“还不支持”);} @Override void beforePhase(PhaseEvent事件){ try { if beforePhase& (requestProcessorBean.getUserRequestVO() == null)) { event.getFacesContext().getExternalContext().redirect("/web/pds/login");}{ Logger.getLogger(TestPhaseListener.class.getName()).log(Level.SEVERE,null,ex);}@覆盖公共PhaseId getPhaseId() {返回PhaseId.RESTORE_VIEW;// RESTORE_VIEW阶段是JSF视图}生命周期中的第一个阶段。
  2. 在您想要的页面上使用下面的标记注册新的PhaseListener

正如我在这篇文章开头提到的那样,这种方法不必要地笨重,太费劲去实现如此之少的成果,而海事组织则滥用了分相器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15704581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档