在tomcat 7.0.42中有什么变化 - > EL-Escaping的7.0.47?

时间:2013-12-02 16:20:22

标签: java tomcat el

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:\&#039;add\&#039;}';
改变了什么?我现在如何输出我的js-variable?

2 个答案:

答案 0 :(得分:0)

我认为Tomcat 7.0.47运行正常。这是Tomcat 7.0.42的错误。 您的案例的解决方案是使用JSTL函数通过单引号包装操作值。

  1. JSTL功能

    公共类函数{

    public static String quote(String str) {
        if (str == null) {
            return null;
        }
        return ('\'' + str + '\'');
    }
    

    }

  2. 使用uri为函数创建TLD:“http://www.myapp.com/functions”且前缀为tf

  3. 使用您的功能

    动作:$ {TF:引号(动作)}

    var customParameter = $ {tf:quote(param.customParameter)}; // Eclipse会发出警告,但它是有效使用的。

    这将生成像这样的JS代码

    var customParameter ='your_action_value';

答案 1 :(得分:0)

我通过解决方法解决了这个问题。我将“action”参数更改为整数。