我需要进行以下构造:
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时的情况,我该怎么办?
在进行比较之前,请先检查pageName是否为“ not null”。在进行比较之前,请使用StringUtils.isNotEmpty(..)类引用检查“字符串是否不为null且不为空”。