tomcat 7.0.42中有什么变化 - > EL-Escaping的7.0.47?
我有一个包含标签:
<jsp:include page="/WEB-INF/jsp/elements/dataview.jspx">
<jsp:param name="customParameter" value="{id:${object.id},action:\'${action}\'}" />
</jsp:include>
dataview.jspx包含
<script type="text/javascript">
var customParameter = '${param.customParameter}';
</script>
在tomcat 7.0.42中,它呈现给:
var customParameter = '{id:4,action:\'add\'}';
但在47年,它提出了这个:
var customParameter = '{id:4,action:\'add\'}';
改变了什么?我现在如何输出我的js-variable?
答案 0 :(得分:0)
我认为Tomcat 7.0.47运行正常。这是Tomcat 7.0.42的错误。 您的案例的解决方案是使用JSTL函数通过单引号包装操作值。
JSTL功能
公共类函数{
public static String quote(String str) {
if (str == null) {
return null;
}
return ('\'' + str + '\'');
}
}
使用uri为函数创建TLD:“http://www.myapp.com/functions”且前缀为tf
使用您的功能
动作:$ {TF:引号(动作)}
var customParameter = $ {tf:quote(param.customParameter)}; // Eclipse会发出警告,但它是有效使用的。
这将生成像这样的JS代码
var customParameter ='your_action_value';
答案 1 :(得分:0)
我通过解决方法解决了这个问题。我将“action”参数更改为整数。