Java JSP EL+;jQuery";$。ajax();问题
我有一个简单的JSP: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: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.
});
});