<td height="20" bgcolor="#FFFFFF" class="STYLE6"><div align="left">
        <span class="STYLE19">
         <m:type type="${page.key.type}" beanName="${sessionScope.item.menu.beanName }"/>
        </span></div>
    </td>其中<m:type />是我自定义的标签,标签属性值是通过jstl赋值的,为什么不能成功呢,要报错,说什么不支持jspt赋值表达是,如果我不用jstl表达式,写死数据就没有问题,各位师兄们,这问题该怎么解决呢。问题代码如下
org.apache.jasper.JasperException: /bpc.jsp(80,18) According to TLD or attribute directive in tag file, attribute type does not accept any expressions
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1209)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:846)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:865)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:865)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:865)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1763)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.dbcbus.service.struts.filter.ConfigFilter.doFilter(ConfigFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.dbcbus.service.struts.filter.EncodingFilter.doFilter(EncodingFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:600)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1703)
at java.lang.Thread.run(Thread.java:619)希望各位师兄帮帮忙,我是刚入手的小弟
谢谢Java WebJavaHTML

解决方案 »

  1.   

    用javaEE5的jar包试试,没有的话这有地址。
    http://download.csdn.net/detail/cl61917380/5227429
      

  2.   

    deng!!!
      

  3.   

    应该是没用引用tld标签导致的,没用表达式赋值的时候,编辑没被处理,所以不会报错,但是页面会看不到效果
      

  4.   

    在tld文件的相应tag的相应属性中加上rtexprvalue属性并设置为true,比如:<tag> <name>CustomTag</name> …… <attribute>  <name>AttName</name>  <rtexprvalue>true</rtexprvalue> </attribute></tag>
      

  5.   

    不好意思哈,下面是我的类package com.dbcbus.service.tag;import java.io.IOException;
    import java.util.List;
    import java.util.Map;import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.TagSupport;public class TagUtil extends TagSupport { private static final long serialVersionUID = 1780691310130001245L; private String type;

    private String beanName;

    @Override
    public int doStartTag() throws JspException {
    return EVAL_BODY_INCLUDE;
    } @Override
    public int doEndTag() throws JspException {
    JspWriter out = pageContext.getOut();
    try {
    out.println("helloWord");
    out.flush();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return EVAL_PAGE;
    } public String getType() {
    return type;
    } public void setType(String type) {
    this.type = type;
    } public String getBeanName() {
    return beanName;
    } public void setBeanName(String beanName) {
    this.beanName = beanName;
    }
    /*-----------------------------------------------------------setter and getter --------------------------------------------------------------------------*/}
    这里是xml文件。<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"><taglib> <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>myTag</short-name>
    <uri>/myTag</uri>
    <tag>
    <name>message</name>
    <tag-class>com.dbcbus.service.tag.TagUtil</tag-class>
    <body-content>empty</body-content>
    <attribute>
    <name>beanName</name>
    <required>true</required>
    </attribute>
    <attribute>
    <name>type</name>
    <required>true</required>
    </attribute>
    </tag>
    </taglib>
      

  6.   

    我感觉这里是不是<m:message
    另外你说的问题我感觉<body-content>empty</body-content> 有关