1 18 package org.apache.beehive.netui.tags.html; 19 20 import org.apache.beehive.netui.util.internal.InternalStringBuilder; 21 22 24 import org.apache.beehive.netui.tags.AbstractSimpleTag; 25 import org.apache.beehive.netui.tags.IAttributeConsumer; 26 import org.apache.beehive.netui.tags.rendering.AbstractAttributeState; 27 import org.apache.beehive.netui.tags.rendering.BaseTag; 28 import org.apache.beehive.netui.tags.rendering.TagRenderingBase; 29 import org.apache.beehive.netui.tags.rendering.WriteRenderAppender; 30 import org.apache.beehive.netui.util.Bundle; 31 32 import javax.servlet.http.HttpServletRequest ; 33 import javax.servlet.jsp.JspException ; 34 import javax.servlet.jsp.PageContext ; 35 import java.io.IOException ; 36 37 49 public class Base extends AbstractSimpleTag 50 implements IAttributeConsumer, HtmlConstants 51 { 52 private BaseTag.State _state = new BaseTag.State(); 53 54 57 public String getTagName() 58 { 59 return "Base"; 60 } 61 62 71 public void setTarget(String target) 72 { 73 _state.target = setNonEmptyValueAttribute(target); 74 } 75 76 83 public void setAttribute(String name, String value, String facet) 84 throws JspException 85 { 86 boolean error = false; 87 88 if (name == null || name.length() <= 0) { 90 String s = Bundle.getString("Tags_AttributeNameNotSet"); 91 registerTagError(s, null); 92 error = true; 93 } 94 if (facet != null) { 95 String s = Bundle.getString("Tags_AttributeFacetNotSupported", new Object []{facet}); 96 registerTagError(s, null); 97 error = true; 98 } 99 100 if (name != null && name.equals(HREF)) { 102 String s = Bundle.getString("Tags_AttributeMayNotBeSet", new Object []{name}); 103 registerTagError(s, null); 104 } 105 if (error) 106 return; 107 108 if (name.equals(TARGET)) { 110 _state.target = value; 111 return; 112 } 113 else if (name.equals(HREF)) { 114 _state.href = value; 115 return; 116 } 117 118 _state.registerAttribute(AbstractAttributeState.ATTR_GENERAL, name, value); 119 } 120 121 125 public void doTag() 126 throws JspException , IOException 127 { 128 PageContext pageContext = getPageContext(); 129 HttpServletRequest request = (HttpServletRequest ) pageContext.getRequest(); 130 TagRenderingBase br = TagRenderingBase.Factory.getRendering(TagRenderingBase.BASE_TAG, request); 131 132 getBufferBody(false); 134 135 InternalStringBuilder buf = new InternalStringBuilder(64); 136 137 buf.append(request.getScheme()); 139 buf.append("://"); 140 buf.append(request.getServerName()); 141 142 String scheme = request.getScheme(); 143 int port = request.getServerPort(); 144 if ("http".equals(scheme) && (80 == port)) { 145 } 147 else if ("https".equals(scheme) && (443 == port)) { 148 } 150 else { 151 buf.append(":"); 152 buf.append(request.getServerPort()); 153 } 154 buf.append(request.getRequestURI()); 155 _state.href = buf.toString(); 156 157 WriteRenderAppender writer = new WriteRenderAppender(pageContext); 159 br.doStartTag(writer, _state); 160 br.doEndTag(writer); 161 162 if (hasErrors()) 165 reportErrors(); 166 } 167 } 168 169 170 171 | Popular Tags |