1 28 29 package com.caucho.jstl.rt; 30 31 import com.caucho.util.L10N; 32 33 import javax.servlet.jsp.JspException ; 34 import javax.servlet.jsp.jstl.sql.SQLExecutionTag; 35 import javax.servlet.jsp.tagext.Tag ; 36 import javax.servlet.jsp.tagext.TagSupport ; 37 38 41 public class SqlDateParamTag extends TagSupport { 42 private static L10N L = new L10N(SqlDateParamTag.class); 43 44 private Object _value; 45 private String _type; 46 47 52 public void setValue(Object value) 53 { 54 _value = value; 55 } 56 57 62 public void setType(String type) 63 { 64 _type = type; 65 } 66 67 70 public int doStartTag() 71 throws JspException 72 { 73 Object value = _value; 74 75 long time = 0; 76 77 Object result = null; 78 79 if (value == null) { 80 } 81 else if (value instanceof Number ) 82 time = ((Number ) value).longValue(); 83 else if (value instanceof java.util.Date ) 84 time = ((java.util.Date ) value).getTime(); 85 else if (value instanceof java.sql.Date ) 86 time = ((java.sql.Date ) value).getTime(); 87 else 88 throw new JspException (L.l("sql:dateParam requires at date at `{0}'", value)); 89 90 if (value == null) 91 result = null; 92 else if (_type == null) 93 result = new java.sql.Timestamp (time); 94 else if (_type.equals("time")) 95 result = new java.sql.Time (time); 96 else if (_type.equals("date")) 97 result = new java.sql.Date (time); 98 else 99 result = new java.sql.Timestamp (time); 100 101 Tag parent = getParent(); 102 for (; 103 parent != null && ! (parent instanceof SQLExecutionTag); 104 parent = parent.getParent()) { 105 } 106 107 if (parent == null) 108 throw new JspException (L.l("sql:dateParam requires sql:query parent.")); 109 110 SQLExecutionTag tag = (SQLExecutionTag) parent; 111 112 tag.addSQLParameter(result); 113 114 return SKIP_BODY; 115 } 116 } 117 | Popular Tags |