小编典典

Liferay中的不同jsp渲染

jsp

我需要进行以下构造:

String pageName = request.getParameter("pageName");
if ("some_parameter".equals("pageName")) {
    include("html/one.jsp", request, response);
}
if ("third_parameter".equals("pageName")) {
    include("html/two.jsp", request, response);
}

但是我总是遇到像NullPointerException这样的麻烦。

我的意思是我尝试使不同的renderURL显示不同的jsps,但我不知道如何。如果您不了解我的意思,但对这个主题有了解,请在评论中写一些信息,我会提供更多信息。提前致谢!


好的,我举一个例子:

public static final String VIEW = "view";                           //view.jsp parameter
public static final String ADD_BOOK = "add_book";                   //add_book.jsp parameter

private final String VIEW_PAGE_PATH = "/html/view.jsp";             //view.jsp path parameter
private final String ADD_BOOK_PAGE_PATH = "/html/add_book.jsp";     //add_book.jsp path parameter

@Override
public void render(RenderRequest request, RenderResponse response)
        throws PortletException, IOException {

    String pageName = request.getParameter("pageName");
    if (pageName.equalsIgnoreCase(ADD_BOOK)) {              
        include(ADD_BOOK_PAGE_PATH, request, response);
    } else {
        include(VIEW_PAGE_PATH, request, response);
    }
}

和我的view.jsp:

<portlet:renderURL var="addBookVar">
    <portlet:param name="pageName" value="<%=Library.ADD_BOOK %>"/>
</portlet:renderURL>

<a href="${addBookVar}">Add Book</a>

为什么此代码不起作用?为了实现当不同的renderURL显示不同的jsps时的情况,我该怎么办?


阅读 275

收藏
2020-06-10

共1个答案

小编典典

在进行比较之前,请先检查pageName是否为“ not
null”。在进行比较之前,请使用StringUtils.isNotEmpty(..)类引用检查“字符串是否不为null且不为空”。

2020-06-10