1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.portals.bridges.struts.taglib;
18
19 import javax.servlet.ServletRequest;
20 import javax.servlet.jsp.JspException;
21
22 import org.apache.portals.bridges.struts.PortletServlet;
23
24 /***
25 * Supports the Struts html-el:img tag to be used within a Portlet context allowing relative
26 * img src paths.
27 *
28 * @author <a href="mailto:ate@douma.nu">Ate Douma</a>
29 * @version $Id: ELImgTag.java 517068 2007-03-12 01:44:37Z ate $
30 */
31 public class ELImgTag extends org.apache.strutsel.taglib.html.ELImgTag
32 {
33 /***
34 * Allow a relative img src path to be used within a PortletRequest context.
35 * <p>
36 * Temporarily modifies the {@link #src} attribute value (if defined and if within the
37 * context of a {@link PortletServlet#isPortletRequest(ServletRequest) PortletRequest}).<br/>
38 * A relative src path is changed to a context relative path using the current
39 * request uri.</p>
40 * @return {@link #EVAL_PAGE}
41 */
42 public int doEndTag() throws JspException
43 {
44 String src = getSrc();
45 if ( PortletServlet.isPortletRequest(pageContext.getRequest()) && src != null )
46 {
47 try
48 {
49 setSrc(TagsSupport.getContextRelativeURL(pageContext,src,true));
50 super.doEndTag();
51 }
52 finally
53 {
54 setSrc(src);
55 }
56 }
57 else
58 {
59 super.doEndTag();
60 }
61 return (EVAL_PAGE);
62 }
63 }