Java JSP EL+;jQuery";$。ajax();问题

Java JSP EL+;jQuery";$。ajax();问题,java,jquery,jsp,el,Java,Jquery,Jsp,El,我有一个简单的JSP: <jsp:directive.attribute name="severity" type="java.lang.String" required="true"/> <jsp:directive.attribute name="currentSeverity" type="java.lang.String" required="true"/> <c:if test="${severity ne currentSeverity}">

我有一个简单的JSP:

<jsp:directive.attribute name="severity" type="java.lang.String" required="true"/>
<jsp:directive.attribute name="currentSeverity" type="java.lang.String" required="true"/>

<c:if test="${severity ne currentSeverity}">
    <c:url value="/session" var="url">
        <c:param name="severity" value="${severity}"/>
    </c:url>
    <li><a href="#" onclick="$.ajax({
        type: 'GET',
        url: '${url}',
        success: function() {
            window.location.reload();
        }
    });"><c:out value="${severity}"/></a></li>
</c:if>

不知怎的,JSP引擎认为
$.ajax({…})字符串是JSP EL表达式(无论在
$
{
之间放置了什么字符)。当我反斜杠
{
$
时,一切都正常,但我的IDE认为此代码是错误的JS代码


那么,为什么JSP引擎认为
$.ajax({…})
是JSP EL表达式呢?

这看起来确实像是servletcontainer(或webapplication)使用的EL实现中的一个bug。您需要弄清楚它正在使用哪一个,然后尝试升级/替换它

如果升级/替换EL实现没有帮助,那么我强烈建议您将整个脚本移动到它自己的
.js
文件中的函数中,您可以使用HTML
元素中的
加载该文件。这也是正常的做法。更重要的是,我会给链接一个类名,这样您就可以在链接中挂接它g
$(document).ready()
并相应地添加
单击()

<a href="${url}" class="someName">

这看起来确实像servletcontainer(或webapplication)使用的EL实现中的一个bug。您需要确定它使用的是哪一个,然后尝试升级/替换它

如果升级/替换EL实现没有帮助,那么我强烈建议您将整个脚本移动到它自己的
.js
文件中的函数中,您可以使用HTML
元素中的
加载该文件。这也是正常的做法。更重要的是,我会给链接一个类名,这样您就可以在链接中挂接它g
$(document).ready()
并相应地添加
单击()

<a href="${url}" class="someName">

我使用Jetty进行开发。我尝试了tomcat和glassfish JSP引擎实现。似乎他们都有这个问题。我认为分离关注点是个好主意,所以我将JS代码从JSP模板中移除。非常感谢。我使用Jetty进行开发。我尝试了tomcat和glassfish JSP引擎实现。看起来我认为分离关注点是个好主意,所以我将JS代码从JSP模板中移除。非常感谢。
$(document).ready(function() {
    $('.someName').click(function() {
        $.ajax({
            type: 'GET',
            url: $(this).attr('href'), // This sets the actual value of ${url}.
            success: function() {
                window.location.reload();
            }
        });
        return false; // Blocks link from executing the default href action.
    });
});