调用我的时出现以下错误testtag.jsp
:
org.apache.jasper.JasperException:无法将属性“att1”的字符串“”转换为类“javax.servlet.jsp.tagext.JspFragment”:属性编辑器未注册到属性编辑器管理器
(详细的堆栈跟踪无关紧要)
我使用的是 J2EE 1.4 服务器(即 JSP 2.0)
My WEB-INF/testtag.tag
<%@ tag body-content="scriptless" %>
<%@ tag description="Renders some test html" %>
<%@ attribute name="att1" fragment="true" required="true" %>
<h1><jsp:invoke fragment="att1"/></h1>
The jsp testtag.jsp
使用此标签:
<%@page contentType ="text/html" pageEncoding="UTF-8" buffer="none" session="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<c:set var="myvar" value="hello world"/>
<t:testtag att1="<c:out var='myvar'/>" />
根据 JSP.7.1.6JSP 2.0 规范 http://download.oracle.com/otndocs/jcp/jsp-2.0-fr-oth-JSpec/(粗体强调我的),
在翻译阶段,页面的各个部分被翻译成
的实施javax.servlet.jsp.tagext.JspFragment
抽象类,之前
被传递给标签处理程序。这是自动完成的对于任何 JSP 代码
身体 of a 命名属性(由以下定义的一个<jsp:attribute>
)被声明为
是一个片段,或者类型JspFragment
,在 TLD 中。
也就是说,在testtag.jsp
该片段应该以另一种方式传递:
<%@page contentType ="text/html" pageEncoding="UTF-8" buffer="none" session="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<c:set var="myvar" value="hello world"/>
<t:testtag>
<jsp:attribute name="att1"><c:out value='${myvar}'/></jsp:attribute>
</t:testtag>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)