luehe 2003/07/23 18:17:34 Modified: jasper2/src/share/org/apache/jasper/compiler TagLibraryInfoImpl.java Log: Do not unconditionally use "JSP" as the default body-content type, because it is illegal for SimpleTag handlers Revision Changes Path 1.43 +45 -26 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java Index: TagLibraryInfoImpl.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagLibraryInfoImpl.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- TagLibraryInfoImpl.java 21 May 2003 18:09:33 -0000 1.42 +++ TagLibraryInfoImpl.java 24 Jul 2003 01:17:33 -0000 1.43 @@ -367,10 +367,10 @@ } private TagInfo createTagInfo(TreeNode elem) throws JasperException { - String name = null; - String tagclass = null; - String teiclass = null; - String bodycontent = "JSP"; // Default body content is JSP + String tagName = null; + String tagClassName = null; + String teiClassName = null; + String bodycontent = null; String info = null; String displayName = null; String smallIcon = null; @@ -385,13 +385,13 @@ String tname = element.getName(); if ("name".equals(tname)) { - name = element.getBody(); + tagName = element.getBody(); } else if ("tagclass".equals(tname) || "tag-class".equals(tname)) { - tagclass = element.getBody(); + tagClassName = element.getBody(); } else if ("teiclass".equals(tname) || "tei-class".equals(tname)) { - teiclass = element.getBody(); + teiClassName = element.getBody(); } else if ("bodycontent".equals(tname) || "body-content".equals(tname)) { bodycontent = element.getBody(); @@ -422,32 +422,51 @@ } } - TagAttributeInfo[] tagAttributeInfo - = new TagAttributeInfo[attributeVector.size()]; - attributeVector.copyInto(tagAttributeInfo); - - TagVariableInfo[] tagVariableInfos - = new TagVariableInfo[variableVector.size()]; - variableVector.copyInto(tagVariableInfos); + // Determine appropriate default value for body-content + if (bodycontent == null) { + try { + Class tagClass = ctxt.getClassLoader().loadClass(tagClassName); + if (SimpleTag.class.isAssignableFrom(tagClass)) { + bodycontent = TagInfo.BODY_CONTENT_SCRIPTLESS; + } else { + bodycontent = TagInfo.BODY_CONTENT_JSP; + } + } catch (Exception e) { + err.jspError("jsp.error.loadclass.taghandler", tagClassName, + tagName); + } + } TagExtraInfo tei = null; - if (teiclass != null && !teiclass.equals("")) { + if (teiClassName != null && !teiClassName.equals("")) { try { - Class teiClass = ctxt.getClassLoader().loadClass(teiclass); + Class teiClass = ctxt.getClassLoader().loadClass(teiClassName); tei = (TagExtraInfo) teiClass.newInstance(); } catch (Exception e) { - err.jspError("jsp.error.teiclass.instantiation", teiclass, e); + err.jspError("jsp.error.teiclass.instantiation", teiClassName, + e); } } - TagInfo taginfo = new TagInfo(name, tagclass, bodycontent, - info, this, + TagAttributeInfo[] tagAttributeInfo + = new TagAttributeInfo[attributeVector.size()]; + attributeVector.copyInto(tagAttributeInfo); + + TagVariableInfo[] tagVariableInfos + = new TagVariableInfo[variableVector.size()]; + variableVector.copyInto(tagVariableInfos); + + TagInfo taginfo = new TagInfo(tagName, + tagClassName, + bodycontent, + info, + this, tei, tagAttributeInfo, - displayName, - smallIcon, - largeIcon, - tagVariableInfos, + displayName, + smallIcon, + largeIcon, + tagVariableInfos, dynamicAttributes); return taginfo; }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]