Jsp 当我部署Portlet时,它是emty
我正在使用Liferay,我的portlet类如下所示:Jsp 当我部署Portlet时,它是emty,jsp,servlets,liferay,Jsp,Servlets,Liferay,我正在使用Liferay,我的portlet类如下所示: public class HospitalPortlet extends MVCPortlet { private static Log _log = LogFactory.getLog(HospitalPortlet.class); public void doLogin(ActionRequest actionRequest, ActionResponse actionResponse) th
public class HospitalPortlet extends MVCPortlet {
private static Log _log = LogFactory.getLog(HospitalPortlet.class);
public void doLogin(ActionRequest actionRequest,
ActionResponse actionResponse)
throws IOException, PortletException{
actionRequest.setAttribute("test", "this is a test");
}
public void doView(RenderRequest renderRequest,
RenderResponse renderResponse)
throws IOException, PortletException{
renderRequest.setAttribute("test", "this is a test");
include("view.jsp", renderRequest, renderResponse);
}
public void include(String path,
RenderRequest renderRequest, RenderResponse renderResponse)
throws IOException, PortletException{
PortletRequestDispatcher portletRequestDispatcher =
getPortletContext().getRequestDispatcher(path);
if (portletRequestDispatcher == null){
_log.error(path + " is not a valid include");
}
else{
portletRequestDispatcher.include(renderRequest, renderResponse);
}
}
}
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<portlet:defineObjects />
This is the <b>Hospital</b> portlet.
<%
String testVar = (String)renderRequest.getAttribute("test");
%>
<br />
<p><%= testVar %></p>
我的viw.jsp如下所示:
public class HospitalPortlet extends MVCPortlet {
private static Log _log = LogFactory.getLog(HospitalPortlet.class);
public void doLogin(ActionRequest actionRequest,
ActionResponse actionResponse)
throws IOException, PortletException{
actionRequest.setAttribute("test", "this is a test");
}
public void doView(RenderRequest renderRequest,
RenderResponse renderResponse)
throws IOException, PortletException{
renderRequest.setAttribute("test", "this is a test");
include("view.jsp", renderRequest, renderResponse);
}
public void include(String path,
RenderRequest renderRequest, RenderResponse renderResponse)
throws IOException, PortletException{
PortletRequestDispatcher portletRequestDispatcher =
getPortletContext().getRequestDispatcher(path);
if (portletRequestDispatcher == null){
_log.error(path + " is not a valid include");
}
else{
portletRequestDispatcher.include(renderRequest, renderResponse);
}
}
}
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<portlet:defineObjects />
This is the <b>Hospital</b> portlet.
<%
String testVar = (String)renderRequest.getAttribute("test");
%>
<br />
<p><%= testVar %></p>
这是医院门户。
我保存了这个portlet并将其放在页面上,但它是空的,并且在liferay日志文件中没有错误消息。有什么问题吗?尝试删除include方法和doView中的include行方法。我假设您只有一个名为view.jsp的页面。还要仔细检查portlet的portlet.xml,看看portlet类是否不是指向MVCPortlet,而是指向HospitalPortlet类。只需删除include方法即可
public void include(字符串路径、,
RenderRequest RenderRequest,RenderResponse RenderResponse)
不要删除include(“view.jsp”、renderRequest、renderResponse)
在doView()中
在SpringMVCPortlet中部署您的代码,我面临这个问题,我犯的错误是忘记替换line portlet.xml文件
com.liferay.util.bridges.mvc.MVCPortlet
我得换一个
org.springframework.web.portlet.DispatcherPortlet
一旦我更换了这个错误就消失了