- - PR -
カスタムタグについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-05-24 16:30
お世話になっています。
カスタムタグを使用して開発を行おうとしているのですが、 JSP側でHogeForm.javaを生成し、tldファイルにtypeを mypackage.hoge.HogeFormと指定し、TagSupportを継承した TestTag.javaクラスにて渡したいのですが、独自のクラスを 指定する事はできないのでしょうか? jsp <%@ taglib uri="testtaglib" prefix="test" %> <test:CommonOutput type="java.lang.Object" attr="<%= formHead %>" /> ※ HogeFormクラスのインスタンス tld <tag> <name>CommonOutput</name> <tag-class>mypackage.TestTag</tag-class> <body-content>JSP</body-content> <attribute> <name>attr</name> <required>true</required> <rtexprvalue>true</rtexprvalue> <type>mypackage.hoge.HogeForm</type> </attribute> </tag> HogeForm.java内ではtype setterをString、attrのsetterを HogeFormとし設定しています。 環境 eclipse3.0 JDK1.4.1_03 Tomcat 5.0 例外 org.apache.jasper.JasperException: /jsp/View02.jsp(57,0) TLDによると、タグ CommonOutput の属性 type は無効です org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39) org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409) org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:238) org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:975) org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:696) org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) org.apache.jasper.compiler.Node$Root.accept(Node.java:456) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163) org.apache.jasper.compiler.Validator.validate(Validator.java:1475) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:214) org.apache.jasper.compiler.Compiler.compile(Compiler.java:470) org.apache.jasper.compiler.Compiler.compile(Compiler.java:451) org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239) java.security.AccessController.doPrivileged(Native Method) javax.security.auth.Subject.doAsPrivileged(Subject.java:499) org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:268) org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157) [ メッセージ編集済み 編集者: n.w 編集日時 2005-05-24 16:31 ] [ メッセージ編集済み 編集者: n.w 編集日時 2005-05-24 16:33 ] |
|
投稿日時: 2005-05-24 18:45
type という 属性(attribute)がTLD に定義されてないというだけじゃないでしょうか?
|
|
投稿日時: 2005-05-26 17:00
遅くなってしまい申し訳ありません。
>type という 属性(attribute)がTLD に定義されてないというだけじゃないでしょうか? あんですが、投稿する際に記述もれをしてしまってました。 実際は記述してあります。失礼いたしました |
1