我按照this帖子使用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>
答案 0 :(得分:0)
基于the answer of the link of the post,如果您首先根据需要定义变量然后在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
变量未设置,也不是作为请求属性,也不是作为会话属性,也不是作为应用程序属性或页面属性(并且通过答案中提供的代码,我们不是'能够帮助你[尚])。
答案 1 :(得分:0)