1 7 package com.inversoft.verge.mvc.view.jsp.form; 8 9 10 import java.util.Iterator ; 11 import java.util.Map ; 12 13 import javax.servlet.jsp.JspException ; 14 15 import org.apache.log4j.Logger; 16 17 import com.inversoft.beans.BeanException; 18 import com.inversoft.verge.mvc.MVCException; 19 import com.inversoft.verge.mvc.config.BaseFormConfig; 20 import com.inversoft.verge.mvc.controller.form.FormMVCMetaData; 21 import com.inversoft.verge.mvc.controller.form.FormURLTools; 22 import com.inversoft.verge.mvc.model.ModelResolution; 23 import com.inversoft.verge.mvc.model.form.FormMetaData; 24 import com.inversoft.verge.mvc.view.jsp.JspTools; 25 import com.inversoft.verge.mvc.view.jsp.model.ModelResolutionRegistry; 26 import com.inversoft.verge.util.WebBean; 27 28 29 36 public class ATag extends com.inversoft.verge.mvc.view.jsp.html.ATag { 37 38 41 private static final Logger logger = Logger.getLogger(ATag.class); 42 43 private String action; 44 protected String localAction; 45 private String form; 46 protected String localForm; 47 private String category; 48 protected String localCategory; 49 50 51 56 public String getAction() { 57 return action; 58 } 59 60 65 public void setAction(String action) { 66 this.action = action; 67 } 68 69 74 public String getForm() { 75 return form; 76 } 77 78 83 public void setForm(String form) { 84 this.form = form; 85 } 86 87 92 public String getCategory() { 93 return category; 94 } 95 96 101 public void setCategory(String category) { 102 this.category = category; 103 } 104 105 108 protected void initialize() throws JspException { 109 super.initialize(); 110 111 localAction = action; 112 localForm = form; 113 localCategory = category; 114 115 if (!JspTools.JSP_20) { 116 localCategory = (String ) JspTools.expand("category", category, 117 String .class, this, pageContext); 118 } 119 120 BaseFormConfig config = null; 123 if (localForm != null) { 124 FormMVCMetaData metaData = new FormMVCMetaData(localForm, localAction); 125 try { 126 config = metaData.findFormConfig(pageContext.getRequest()); 127 } catch (MVCException mvce) { 128 logger.error(mvce); 129 throw new JspException ("Invalid form name: " + localForm, mvce); 130 } 131 132 Iterator iter = config.getFormBeans().iterator(); 134 WebBean webBean; 135 Object bean; 136 FormMetaData md; 137 ModelResolution modelResolution; 138 String key; 139 140 while (iter.hasNext()) { 141 webBean = (WebBean) iter.next(); 142 key = webBean.getID(); 143 144 try { 145 bean = webBean.getInstance(pageContext); 146 } catch (BeanException be) { 147 logger.error(be); 148 throw new JspException (be); 149 } 150 151 pageContext.setAttribute(key, bean); 152 153 md = new FormMetaData(key, null); 155 modelResolution = new ModelResolution(bean, md); 156 ModelResolutionRegistry.store(key, modelResolution, pageContext); 157 } 158 } 159 } 160 161 171 protected void createATag(StringBuffer buf, String id, String name, 172 String href, Map parameters) 173 throws JspException { 174 175 String url = FormURLTools.generateURL(localForm, localAction); 178 super.createATag(buf, id, name, url, parameters); 179 } 180 } | Popular Tags |