001
014
015 package com.liferay.portal.kernel.trash;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.util.Validator;
020 import com.liferay.portal.kernel.util.WebKeys;
021
022 import java.io.IOException;
023
024 import javax.servlet.RequestDispatcher;
025 import javax.servlet.ServletContext;
026 import javax.servlet.ServletException;
027 import javax.servlet.http.HttpServletRequest;
028 import javax.servlet.http.HttpServletResponse;
029
030
033 public abstract class BaseJSPTrashRenderer extends BaseTrashRenderer {
034
035 public abstract String getJspPath(
036 HttpServletRequest request, String template);
037
038 @Override
039 public boolean include(
040 HttpServletRequest request, HttpServletResponse response,
041 String template)
042 throws Exception {
043
044 ServletContext servletContext = getServletContext(request);
045
046 String jspPath = getJspPath(request, template);
047
048 if (Validator.isNull(jspPath)) {
049 return false;
050 }
051
052 RequestDispatcher requestDispatcher =
053 servletContext.getRequestDispatcher(jspPath);
054
055 try {
056 requestDispatcher.include(request, response);
057
058 return true;
059 }
060 catch (ServletException se) {
061 if (_log.isErrorEnabled()) {
062 _log.error("Unable to include JSP", se);
063 }
064
065 throw new IOException("Unable to include " + jspPath, se);
066 }
067 }
068
069 public void setServletContext(ServletContext servletContext) {
070 _servletContext = servletContext;
071 }
072
073 protected ServletContext getServletContext(HttpServletRequest request) {
074 if (_servletContext != null) {
075 return _servletContext;
076 }
077
078 return (ServletContext)request.getAttribute(WebKeys.CTX);
079 }
080
081 private static final Log _log = LogFactoryUtil.getLog(
082 BaseJSPTrashRenderer.class);
083
084 private ServletContext _servletContext;
085
086 }