【发布时间】:2016-08-30 17:24:37
【问题描述】:
我需要进行以下构造:
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,但我不知道如何。如果您不了解我的内容,但对这个主题有了解,请在 cmets 中写下 smth,我会提供更多信息。提前致谢!
好的,我举个例子:
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>
为什么这段代码不起作用?我应该怎么做才能达到这种情况 不同的renderURLs显示不同的jsps?
【问题讨论】:
-
尝试使用like if (pageName.equals("some_parameter"))
-
“我总是有 NullpointerExceptions”——你知道它们为什么会发生,对吧?您甚至可以让调试器在每次遇到 NullpointerException 时停止。堆栈跟踪还应该有助于定位您取消引用空指针的确切位置。如果你在这里指向一个堆栈跟踪,让我们也知道代码中的哪一行对应于发生异常的行。
标签: jsp parameters liferay render