У меня простая 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>
Но когда я оцениваю это, двигатель сервлета бросает:
org.apache.jasper.JasperException:
/WEB-INF/tags/severity-position.tagx(17,9) PWC6287:
The attribute prefix success does not correspond to any imported tag library
Каким-то образом механизм JSP считает, что строка $.ajax({...});
является выражением JSP EL (независимо от того, какие символы расположены между $
и {
). Когда я ставлю обратную косую черту {
или $
, все в порядке, но тогда моя IDE думает, что этот код не работает с кодом JS.
Итак, почему движок JSP считает, что $.ajax({...})
является выражением JSP EL?