【问题标题】:How to intercept error request and redirect to a custom page?如何拦截错误请求并重定向到自定义页面?
【发布时间】:2012-12-17 15:17:35
【问题描述】:

这是我想做的用例之一:

  1. 用户点击博客链接或直接将博客链接粘贴到 URL 中
  2. 博客 Portlet 位于社区(站点)的私有页面上。
  3. 由于用户不是社区(站点)的成员,他将被带到错误页面。
  4. 显示的是 404 页面或无访问错误页面。
  5. 我的要求开始:现在不再显示上述页面或上述页面的自定义版本。
  6. 我想拦截 404 请求或其他此类请求。
  7. 并根据用户的一些参数和初始请求参数重定向到一个门户页面(不是静态错误页面)。
  8. 在这种情况下,我希望用户被重定向到同一社区(站点)的任何公共页面,并要求他加入或请求该社区(站点)的成员资格。

所以简而言之,我想要一种方法来拦截产生错误的请求,然后重定向到我想要的任何地方。

这在liferay 中可用吗?如果没有,我可以了解如何实现这一目标吗?

环境: Liferay 6.1 GA2

感谢您宝贵的时间。

【问题讨论】:

标签: redirect error-handling liferay liferay-6


【解决方案1】:

添加JSP 页面以管理 404 错误,如here in that Liferay's forum post 所述。

JSP 中,您可以根据可以从 JSP 内部访问的任何参数(用户、社区等)放置自定义逻辑,例如,themeDisplay 对象。

【讨论】:

  • 谢谢!我是把/errors/404-searchworkings.jsp 放在EXT 还是plugin 中?那么其他错误呢?你能在这方面提供更多细节吗?
【解决方案2】:

另一种方法(以及我将 404 错误重定向到社区中的特定页面的方法)是使用 Hook 覆盖 404.jsp。然后将您的自定义逻辑添加到被覆盖的 JSP。

我假设可以为禁止访问做类似的事情。

【讨论】:

  • 谢谢!你是说直接修改docroot/errors/404.jsp中原来的404错误页面?
  • 我是说使用一个钩子来覆盖 404.jsp,并在其中添加逻辑,以便您进行重定向(或您需要做的任何其他事情)。例如,我已将其重写为自动重定向到每个社区的自定义错误页面,而不是共享的 404 页面。
猜你喜欢
  • 2011-08-01
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
  • 2018-07-14
  • 1970-01-01
相关资源
最近更新 更多