1 18 package org.apache.struts.taglib.nested.html; 19 20 import javax.servlet.http.HttpServletRequest ; 21 import javax.servlet.jsp.JspException ; 22 23 import org.apache.struts.taglib.html.Constants; 24 import org.apache.struts.taglib.html.OptionsTag; 25 import org.apache.struts.taglib.nested.NestedNameSupport; 26 import org.apache.struts.taglib.nested.NestedPropertyHelper; 27 28 33 public class NestedOptionsTag extends OptionsTag implements NestedNameSupport { 34 35 41 public int doStartTag() throws JspException { 42 originalName = getName(); 44 originalProperty = getProperty(); 45 originalLabelProperty = getLabelProperty(); 46 47 HttpServletRequest request = (HttpServletRequest )pageContext.getRequest(); 49 50 if (originalLabelProperty != null) { 52 if (getName() == null|| Constants.BEAN_KEY.equals(getName())) { 54 super.setLabelProperty(NestedPropertyHelper.getAdjustedProperty(request, 55 originalLabelProperty)); 56 } else { 57 super.setLabelProperty(originalLabelProperty); 58 } 59 } 60 61 NestedPropertyHelper.setNestedProperties(request, this); 63 64 65 66 return super.doStartTag(); 68 } 69 70 76 public int doEndTag() throws JspException { 77 int i = super.doEndTag(); 79 80 setName(originalName); 82 setProperty(originalProperty); 83 setLabelProperty(originalLabelProperty); 84 85 return i; 87 } 88 89 92 public void release() { 93 super.release(); 94 originalName = null; 96 originalProperty = null; 97 originalLabelProperty = null; 98 } 99 100 101 private String originalName = null; 102 private String originalProperty = null; 103 private String originalLabelProperty = null; 104 } 105 | Popular Tags |