1 package fr.improve.struts.taglib.layout; 2 3 import javax.servlet.jsp.JspException ; 4 5 import fr.improve.struts.taglib.layout.el.Expression; 6 import fr.improve.struts.taglib.layout.skin.Skin; 7 import fr.improve.struts.taglib.layout.util.LayoutUtils; 8 9 13 public class ImgTag extends org.apache.struts.taglib.html.ImgTag { 14 17 protected String srcName; 18 19 22 private String jspStyleId; 23 24 27 private String jspOnclick; 28 29 32 private String jspAction; 33 34 37 protected boolean layout = true; 38 39 public int doStartTag() throws JspException { 40 initDynamicValues(); 41 return super.doStartTag(); 42 } 43 44 public int doEndTag() throws JspException { 45 int ret = super.doEndTag(); 46 reset(); 47 return ret; 48 } 49 50 public void release() { 51 super.release(); 52 srcName = null; 53 layout = true; 54 } 55 56 protected void reset() { 57 setOnclick(jspOnclick); 58 setStyleId(jspStyleId); 59 setAction(jspAction); 60 } 61 62 protected void initDynamicValues() { 63 jspOnclick = getOnclick(); 64 setOnclick(Expression.evaluate(getOnclick(), pageContext)); 65 jspStyleId = getStyleId(); 66 setStyleId(Expression.evaluate(getStyleId(), pageContext)); 67 jspAction = action; 68 setAction(Expression.evaluate(getAction(), pageContext)); 69 } 70 71 public String getSrcName() { 72 return srcName; 73 } 74 public void setSrcName(String skinSrc) { 75 this.srcName = skinSrc; 76 } 77 public boolean isLayout() { 78 return layout; 79 } 80 public void setLayout(boolean layout) { 81 this.layout = layout; 82 } 83 protected String src() throws JspException { 84 if (srcName!=null) { 85 Skin lc_skin = LayoutUtils.getSkin(pageContext.getSession()); 87 String lc_imgSrc = lc_skin.getImageDirectory(pageContext.getRequest()); 88 89 StringBuffer lc_buffer = new StringBuffer (lc_imgSrc); 91 if (!lc_imgSrc.endsWith("/") && !srcName.startsWith("/")) { 92 lc_buffer.append('/'); 93 } 94 lc_buffer.append(srcName); 95 return lc_buffer.toString(); 96 } else { 97 return super.src(); 98 } 99 } 100 } 101 | Popular Tags |