【问题标题】:Facing issue while redirecting to page in serveResource: liferay重定向到serveResource中的页面时面临问题:liferay
【发布时间】:2015-09-26 21:25:40
【问题描述】:

我在使用 serveResource 方法重定向到另一个页面时遇到问题。 我得到了以下异常

java.lang.IllegalStateException: Config is null, please ensure that your init(config) method calls super.init(config)

以下是我的serveResource方法

public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws PortletException {


        System.out.println("Serve Resource Method Called");


        try {

            String url = getURL(Long.valueOf(resourceRequest.getParameter("key")));
            resourceRequest.setAttribute("url", conn.getURL().toString());
        include("/html/viewImage.jsp", resourceRequest, resourceResponse);
} catch (Exception e) {

            e.printStackTrace();
        }
    }

如何解决这个问题?

谢谢

【问题讨论】:

  • 您的portlet 有init 方法吗?如果是 - 请也发布它
  • no portlet 没有任何 init 方法
  • 从另一个 portlet 调用我的 serveResource 方法时发生此错误...

标签: liferay liferay-6


【解决方案1】:

根据您的评论,您从不同的 portlet 调用 serveResource。你不应该那样做。

如果您在不同的 portlet 之间共享一个实现,请将其分离为一个公共组件。您自己没有调用生命周期方法的业务。此外,您可能正在自己实例化该 portlet 类(否则将没有对象可以调用 serveResource),它可能根本不会调用 init() - 我们又来了:调用生命周期是门户的业务函数,不是你的。

【讨论】:

  • 好的..感谢您的回复..但我想重定向到serveResource方法中的另一个页面..我该怎么做?
  • 重定向如 HTTP 重定向(例如发送 status-code-302 响应)或显示不同的内容?
  • 重定向到另一个jsp页面.. "/html/viewImage.jsp"
  • 在这个“/html/viewImage.jsp”页面上。我只是在参数中发送 url 并显示图像
【解决方案2】:

如果我们谈论 jsp-servlet ,我们只能通过两种方式从一个 jsp 切换到另一个。

1) 发送重定向 2) 转发页面

如果我们谈论纯 servlet,那么对于转发页面将如下所示:

RequestDispatcher dispatcher = request.getRequestDispatcher("/template.jsp");
if (dispatcher != null) dispatcher.forward(request, response);

现在为了回答你的问题。 Portlet JSR 286 在 RequestDisptcher 之上为 Portlet 创建了一个接口,它将生成调度程序引用。 下面的代码含义同上。

PortletRequestDispatcher dispatcher = resourceRequest.getPortletSession().getPortletContext().getRequestDispatcher("/html/viewImage.jsp");
dispatcher.forward(resourceRequest, resourceResponse);

reference

HTH!

谢谢。

【讨论】:

  • 您应该添加一些信息,为什么这是问题的答案。
  • 对!但我想代码是不言自明的,其余的解释已经在前面的答案中给出。
  • 较早的答案不一定会在较晚的答案之前显示 - 我因投票或活动而更改的顺序。而且我不得不承认,我没有看到与 Olafs 答案的联系,或者为什么这是问题的正确答案......
  • 我没有说答案之间有任何联系,但是已经提供了对问题的上下文中的一些解释,重复我认为不好。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 2012-06-22
相关资源
最近更新 更多