Attribute value is quoted with " which must be escaped when used within the value 问题解决
2016-05-13 14:11
936 查看
访问JSP时,报错:Attribute value is quoted with " which must be escaped when used within the value 。相信很多人都遇到过,以下结合本人查资料与亲自实践得到的结论。
有不对的地方还请指教。
1):错误常发生的位置 value="<%=""+request.getAttribute("name")%>"
2):错误产生的原因,是因为tomcat版本升级后(6.0以后),对双引号的处理机制引起的,如果出现双引号包含双引号的情况,就可能会出现这个错误。
3):解决办法有好多种,大多数网上的意见是改为value=‘<%=""+request.getAttribute("name")%>’ 这样确实可以解决这个报错,可能无法完全解决问题,比如项目中有很多地方以前都用的是双引号,修改起来会非常麻烦,还容易出错。
查看tomact文档有一段话这样描述的“If
If not specified, the specification compliant default of
如此一来,我们知道只要在tomcat启动时将这个属性设为false就可以解决这个问题。
那么怎么将这个属性设置到tomcat的system属性中呢,有至少两个办法:
一种是利用tomcat启动的执行脚本,在执行过程中调用setenv.sh,在其中设置环境变量,如:JAVA_OPTS=%JAVA_OPTS%: -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
另一种是找到conf/catalina.properties文件,在最后添加org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false 即可。
这样这个问题就算是解决了,如果大家发现有不正确的地方,请及时告诉我。
有不对的地方还请指教。
1):错误常发生的位置 value="<%=""+request.getAttribute("name")%>"
2):错误产生的原因,是因为tomcat版本升级后(6.0以后),对双引号的处理机制引起的,如果出现双引号包含双引号的情况,就可能会出现这个错误。
3):解决办法有好多种,大多数网上的意见是改为value=‘<%=""+request.getAttribute("name")%>’ 这样确实可以解决这个报错,可能无法完全解决问题,比如项目中有很多地方以前都用的是双引号,修改起来会非常麻烦,还容易出错。
查看tomact文档有一段话这样描述的“If
falsethe requirements for escaping quotes in JSP attributes will be relaxed so that an unescaped quote will not cause an error.
If not specified, the specification compliant default of
truewill be used.” 这个描述针对的是tomact的
org.apache.jasper.compiler. Parser.STRICT_QUOTE_ESCAPING属性。
如此一来,我们知道只要在tomcat启动时将这个属性设为false就可以解决这个问题。
那么怎么将这个属性设置到tomcat的system属性中呢,有至少两个办法:
一种是利用tomcat启动的执行脚本,在执行过程中调用setenv.sh,在其中设置环境变量,如:JAVA_OPTS=%JAVA_OPTS%: -Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false
另一种是找到conf/catalina.properties文件,在最后添加org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false 即可。
这样这个问题就算是解决了,如果大家发现有不正确的地方,请及时告诉我。
相关文章推荐
- 自定义UITableViewCell时registerNib: 与 registerClass: 的区别
- OpenStack nova M Blueprints 分析
- UVa540 Team Queue (queue)
- darwin streaming server 媒体服务器发送本地自己的文件,使用quicktime pro标记-流
- request.sendRedirect(重定向)和request.getRequestDispatcher(请求转发)
- (转)EasyUI-datagrid-自动合并单元格
- longest consecutive sequence
- express 413 Request Entity Too Large解决办法
- leetcode 304. Range Sum Query 2D - Immutable
- IOS:FMDB使用databaseQueue实现数据库操作线程安全
- vim E437: terminal capability "cm" required
- Logging only once for UICollectionViewFlowLayout cache mismatched frame
- NSURLRequest各种缓存方式讲解
- iOS之UIScrollView实现无限滚动,思路与代码
- Qt中Ui名字空间以及setupUi函数的原理和实现
- android常用UI控件总结
- MySQL提示:The server quit without updating PID file问题的解决办法
- Java并发编程之2——同步工具类的使用(CountDownLatch,CyclicBarrier,BlockungQueue,Semaphore)
- Android工作杂项总结(APN,3G,i2c,SystemUI等)
- LeetCode---Implement Queue Using Stacks、Implement Stack Using Queues解题分析