[英]Get escaping error when putting JSTL variable into Javascript
我按照这篇文章使用JSTL变量渲染javascript变量:
var size= "<c:out value='${fn:length(orders)}'/>";
但是,不是很幸运,我得到了这样的异常:
Element type "size" must be followed by either attribute specifications, ">" or "/>".
所以我用
var size= <c:out value='${fn:length(orders)}'/>;
相反,但没有运气。 加双引号后:
var size= "<c:out value='${fn:length(orders)}'/>";
仍然无法正常工作..那么如何逃避并使其正常工作呢?
jspx看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jsp:root
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields"
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:page="urn:jsptagdir:/WEB-INF/tags/form"
xmlns:spring="http://www.springframework.org/tags"
xmlns:form="http://www.springframework.org/tags/form"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
version="2.1">
<div>
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<jsp:output omit-xml-declaration="yes"/>
<page:show>
<form:form.....
<!--body of the form -->
</form:form>
</page:show>
<script type="text/javascript">
//jquery and so...
....
var size= "<c:out value='${fn:length(orders)}'/>";
....
</script>
</div>
</jsp:root>
根据文章链接的答案,最好先根据需要定义一个变量,然后在JavaScript中使用该变量的值:
<c:set var="ordersLength" value="${fn:length(orders)}"/>
<script type="text/javascript">
var size= "<c:out value='${ordersLength}'/>";
</script>
另一个选择是在隐藏字段中设置${fn:length(orders)}
值,然后在JavaScript中读取此字段的值:
<input type="hidden" id="ordersLength" value="${fn:length(orders)}" />
<script type="text/javascript">
var size = document.getElementById('ordersLength').value;
</script>
当然,这最后一个选项很笨拙,但可以帮助您解决此问题。
如果这些都不起作用,则意味着您的orders
变量既未设置,也未设置为请求属性,会话属性,应用程序属性或页面属性(根据您答案中提供的代码,我们将无法为您提供帮助[然而])。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.