1 28 29 package com.caucho.jsp.java; 30 31 import com.caucho.jsp.JspParseException; 32 import com.caucho.vfs.WriteStream; 33 import com.caucho.xml.QName; 34 35 import java.io.IOException ; 36 37 public class JstlXmlSet extends JstlNode { 38 private static final QName SELECT = new QName("select"); 39 private static final QName VAR = new QName("var"); 40 private static final QName SCOPE = new QName("scope"); 41 42 private String _select; 43 private String _var; 44 private String _scope; 45 46 49 public void addAttribute(QName name, String value) 50 throws JspParseException 51 { 52 if (SELECT.equals(name)) 53 _select = value; 54 else if (VAR.equals(name)) 55 _var = value; 56 else if (SCOPE.equals(name)) 57 _scope = value; 58 else 59 throw error(L.l("`{0}' is an unknown attribute for <{1}>.", 60 name.getName(), getTagName())); 61 } 62 63 66 public void addAttribute(QName name, JspAttribute value) 67 throws JspParseException 68 { 69 if (false) 70 throw error(L.l("`{0}' is an unsupported jsp:attribute for <{1}>.", 71 name.getName(), getTagName())); 72 } 73 74 79 public void printXml(WriteStream os) 80 throws IOException 81 { 82 os.print("<x:set"); 83 84 if (_select != null) { 85 os.print(" select=\""); 86 printXmlText(os, _select); 87 os.print("\""); 88 } 89 90 if (_var != null) 91 os.print(" var=\"" + _var + "\""); 92 93 if (_scope != null) 94 os.print(" scope=\"" + _scope + "\""); 95 96 os.print(">"); 97 98 printXmlChildren(os); 99 100 os.print("</x:set>"); 101 } 102 103 106 public void generate(JspJavaWriter out) 107 throws Exception 108 { 109 if (_select == null) 110 throw error(L.l("required attribute `select' missing from <{0}>", 111 getTagName())); 112 if (_var == null) 113 throw error(L.l("required attribute `var' missing from <{0}>", 114 getTagName())); 115 116 String select = ("com.caucho.jstl.el.XmlSetTag.evalObject(pageContext, " + 117 _gen.addXPathExpr(_select, getNamespaceContext()) + ")"); 118 119 generateSetOrRemove(out, _var, _scope, select); 120 } 121 } 122 | Popular Tags |