1 package org.apache.jetspeed.services.jsp.tags; 2 3 18 19 import javax.servlet.jsp.JspException ; 21 import javax.servlet.jsp.PageContext ; 22 import javax.servlet.jsp.tagext.TagSupport ; 23 24 import org.apache.turbine.util.DynamicURI; 26 import org.apache.turbine.services.jsp.JspService; 27 28 import org.apache.ecs.ConcreteElement; 30 import org.apache.ecs.StringElement; 31 32 import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; 34 import org.apache.jetspeed.services.logging.JetspeedLogger; 35 import org.apache.jetspeed.services.rundata.JetspeedRunData; 36 import org.apache.jetspeed.services.forward.ForwardService; 37 import org.apache.jetspeed.util.ServiceUtil; 38 39 50 public class JetspeedForwardTag extends TagSupport 51 { 52 55 private static final JetspeedLogger logger = JetspeedLogFactoryService.getLogger(JetspeedForwardTag.class.getName()); 56 57 private String name = null; 58 private String target = null; 59 60 public void setName(String name) 61 { 62 this.name = name; 63 } 64 65 public String getName() 66 { 67 return this.name; 68 } 69 70 public void setTarget(String target) 71 { 72 this.target = target; 73 } 74 75 public String getTarget() 76 { 77 return this.target; 78 } 79 80 86 public int doStartTag() throws JspException 87 { 88 JetspeedRunData data = (JetspeedRunData) pageContext.getAttribute(JspService.RUNDATA, PageContext.REQUEST_SCOPE); 89 90 try 91 { 92 ConcreteElement result = null; 93 DynamicURI uri = null; 94 ForwardService service = (ForwardService) ServiceUtil.getServiceByName(ForwardService.SERVICE_NAME); 95 96 if (this.name != null && this.target != null) 97 { 98 uri = service.forward(data, this.name, this.target); 99 } 100 else if (this.getName() != null) 101 { 102 uri = service.forward(data, this.name); 103 } 104 if (uri != null) 105 { 106 result = new StringElement(uri.toString()); 107 } 108 109 if (result != null) 111 { 112 pageContext.getOut().print(result); 113 } 114 115 } 116 catch (Exception e) 117 { 118 String message = "Error processing name '" + name + "'."; 119 logger.error(message, e); 120 try 121 { 122 data.getOut().print("Error processing forward name '" + name + "'. See log for more information."); 123 } 124 catch (java.io.IOException ioe) 125 { 126 } 127 } 128 return EVAL_BODY_INCLUDE; 129 } 130 } 131 | Popular Tags |