大家好,我想问一个问题,下面是一个jsp文件
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="/mytag" prefix="my" %>
<%
 String name=request.getParameter("name");
 %>
 <my:switch>
  <my:case cond="<%=name.equals("zhangsan")%>">
  <%out.println(name+" is manager");%>
  </my:case>
   <my:case cond="<%=name.equals("lisi")%>">
  <%out.println(name+" is salename");%>
  </my:case>
  <my:default>
   <%out.println(name+" is employee");%>
   </my:default>
   </my:switch>
可是运行时报
org.apache.jasper.JasperException: /switch.jsp(7,20) Attribute value name.equals("zhangsan") is quoted with " which must be escaped when used within the value
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:198)
org.apache.jasper.compiler.Parser.parseQuoted(Parser.java:307)
org.apache.jasper.compiler.Parser.parseAttributeValue(Parser.java:250)
org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:211)
org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:149)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1350)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1589)
org.apache.jasper.compiler.Parser.parseBody(Parser.java:1818)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1081)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1389)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1589)
org.apache.jasper.compiler.Parser.parse(Parser.java:132)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:212)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:156)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
请问大家是哪里出现问题,谢谢

解决方案 »

  1.   

      <my:case cond=" <%=name.equals("zhangsan")%>"> 
    这么用 肯定不对
      

  2.   

    我将着<my:case cond=" <%=name.equals("zhangsan")%>"> 
    改为<my:case cond='<%=name.equals("zhangsan")%>'>运行不报错,我想问为什么呢,属性的值是双引号的,为什么现在不可以呢,谢谢 
      

  3.   

    jsp编译成java之后有两个双引号了。所以就不行了。
      

  4.   

    LZ你到底想干什么 
    一会儿是自定义标签一会儿是嵌套Java代码 
      

  5.   

    正解,JSP中双引号要与单引号间隔着使用
      

  6.   

    用el 不是很好吗?在还标签里嵌套jsp。