1
22
23 package com.liferay.taglib.util;
24
25 import com.liferay.portal.kernel.log.Log;
26 import com.liferay.portal.kernel.log.LogFactoryUtil;
27 import com.liferay.portal.kernel.log.LogUtil;
28 import com.liferay.portal.kernel.servlet.StringServletResponse;
29 import com.liferay.portal.kernel.util.Validator;
30 import com.liferay.portal.model.Theme;
31 import com.liferay.portal.util.WebKeys;
32
33 import javax.servlet.RequestDispatcher;
34 import javax.servlet.ServletContext;
35 import javax.servlet.http.HttpServletRequest;
36 import javax.servlet.jsp.JspException;
37
38
44 public class IncludeTag extends ParamAndPropertyAncestorTagImpl {
45
46 public int doEndTag() throws JspException {
47 HttpServletRequest request = null;
48
49 try {
50 ServletContext servletContext = getServletContext();
51 request = getServletRequest();
52 StringServletResponse stringResponse = getServletResponse();
53
54 Theme theme = (Theme)request.getAttribute(WebKeys.THEME);
55
56 String page = getPage();
57
58 if (isTheme()) {
59 ThemeUtil.include(
60 servletContext, request, stringResponse, pageContext, page,
61 theme);
62 }
63 else {
64 RequestDispatcher requestDispatcher =
65 servletContext.getRequestDispatcher(page);
66
67 requestDispatcher.include(request, stringResponse);
68 }
69
70 pageContext.getOut().print(stringResponse.getString());
71
72 return EVAL_PAGE;
73 }
74 catch (Exception e) {
75 if (request != null) {
76 String currentURL = (String)request.getAttribute(
77 WebKeys.CURRENT_URL);
78
79 _log.error(
80 "Current URL " + currentURL + " generates exception: " +
81 e.getMessage());
82 }
83
84 LogUtil.log(_log, e);
85
86 if (e instanceof JspException) {
87 throw (JspException)e;
88 }
89
90 return EVAL_PAGE;
91 }
92 finally {
93 clearParams();
94 clearProperties();
95 }
96 }
97
98 public boolean isTheme() {
99 return false;
100 }
101
102 public String getPage() {
103 if (Validator.isNull(_page)) {
104 return getDefaultPage();
105 }
106 else {
107 return _page;
108 }
109 }
110
111 public void setPage(String page) {
112 _page = page;
113 }
114
115 public ServletContext getServletContext() {
116 if (_servletContext != null) {
117 return _servletContext;
118 }
119 else {
120 return super.getServletContext();
121 }
122 }
123
124 public void setServletContext(ServletContext servletContext) {
125 _servletContext = servletContext;
126 }
127
128 protected String getDefaultPage() {
129 return null;
130 }
131
132 private static Log _log = LogFactoryUtil.getLog(IncludeTag.class);
133
134 private String _page;
135 private ServletContext _servletContext;
136
137 }