1 7 package com.inversoft.verge.mvc.view.jsp.model; 8 9 10 import java.io.IOException ; 11 12 import javax.servlet.jsp.JspException ; 13 import javax.servlet.jsp.tagext.TagSupport ; 14 15 import com.inversoft.verge.mvc.validator.ValidatorConstants; 16 import com.inversoft.verge.mvc.view.HtmlViewToolkit; 17 import com.inversoft.verge.mvc.view.jsp.html.FormTag; 18 19 20 36 public class ValidatorTag extends TagSupport { 37 38 41 public static final String VALIDATOR_KEY = "validator"; 42 43 44 private String validator; 45 46 47 50 public ValidatorTag() { 51 } 52 53 54 59 public String getValidator() { 60 return validator; 61 } 62 63 68 public void setValidator(String validator) { 69 this.validator = validator; 70 } 71 72 73 79 public int doStartTag() throws JspException { 80 81 FormTag parent = (FormTag) findAncestorWithClass(this, FormTag.class); 82 if (parent == null) { 83 throw new JspException ("The validator tag must be in a form"); 84 } 85 86 ValidatorTag prev = (ValidatorTag) parent.getAttribute(VALIDATOR_KEY); 87 if (prev == null) { 88 parent.setAttribute(VALIDATOR_KEY, this); 89 } else { 90 throw new JspException ("Only one validator tag per form"); 91 } 92 93 try { 94 StringBuffer buf = new StringBuffer (); 95 HtmlViewToolkit.appendHiddenTag(buf, 96 ValidatorConstants.VALIDATOR_PARAMETER, validator); 97 pageContext.getOut().write(buf.toString()); 98 } catch (IOException ioe) { 99 throw new JspException (ioe); 100 } 101 102 return EVAL_PAGE; 103 } 104 } | Popular Tags |