Tomcat - 解决which must be escaped when used within the value错误

Tomcat 6 下发生的错误:

代码:

<tss:dateSelect prefix="b" formName="<%="form" + request.getParameter("index")%>" type="YMD"/>    

错误:

org.apache.jasper.JasperException: /jsp/demo.jsp(92,81) Attribute value "form" + request.getParameter("index")  is quoted with " which must be escaped when used within the value.

中文的大致意思是:引号内不能再使用引号。

原则上是这样的,但是我们这种写法没有错。这可能是Tomcat的一个Bug。

此问题是由于tomcat5.5.28及以上版本升级引起。

解决方法:

在catalina.sh中加入(tomcat 压缩版使用):

JAVA_OPTS="-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false"

可以在Tomcat的Java Options中加入(TOMCAT安装版使用):

-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个编程类的问题,是在讨论特殊字符的转义问题。在编程中,有些字符是有特殊含义的,如果需要使用它们本身的字符,就需要进行转义。例如,"<"符号在HTML中表示标签的开始,如果需要在HTML中显示"<"符号本身,就需要将其转义为"<"。在其他编程语言中也有类似的转义规则。因此,如果你遇到了类似的问题,可以使用相应的转义字符来解决。 ### 回答2: “特殊字符必须进行转义”指的是在编程过程中,特定字符需要通过转义字符进行表示,以防止它们被错误地解释或执行。在给定的例子中,方括号“[”是一种特殊字符,具有特定的含义和功能。为了表示方括号本身,而不是其特定功能,我们需要对其进行转义。 转义字符是一个用来表明紧随其后的字符应该被当作字面意义而不是特殊含义来解释的字符。在许多编程语言中,通常使用的转义字符是反斜杠(\)。 因此,当我们需要表示方括号本身时,我们可以使用“\[”来进行转义。这样,编程语言会正确地将其解释为一个字面意义的方括号,而不是开始定义一个特殊功能或语法。 这种转义机制适用于许多编程语言和场景,以确保特殊字符的正确处理和解释。当我们需要在代码中使用具有特殊含义的特殊字符时,我们应该遵循转义规则,以确保我们的代码能够正确编译和执行。 总之,对于特殊字符,如方括号“[”,我们必须进行转义,以便正确地表达它们的字面含义,而不是其特定功能。这种转义机制是编程语言中的一项重要规则,以确保代码的正确性和可执行性。 ### 回答3: 特殊字符必须进行转义:<。 在编程中,特殊字符具有特殊的含义,如果我们想要表示特殊字符本身而不是其具有的含义,我们就需要对其进行转义。这意味着我们在特殊字符之前添加一个转义字符,以告诉程序将其当作普通字符对待。 在方括号内的字符“[”是一种特殊字符,常用于正则表达式或者其他编程语言中表示一组字符的范围。如果我们想要表达方括号自身的字符而不是范围的含义,就需要对其进行转义。 转义字符通常是反斜杠“\”,因此,在表示方括号字符“[”本身时,我们需要在其之前添加反斜杠进行转义,即“\[”。这样一来,编程语言就会将其解释为一个普通字符,而不是表示范围的特殊字符。 所以,如果我们想要在编程中使用方括号字符“[”而不是范围的含义,我们需要对其进行转义,写作“\[”,以确保它被正确识别为特殊字符本身。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值