0

この投稿に従って、 JSTL 変数を使用して JavaScript 変数をレンダリングします。

var size= "<c:out value='${fn:length(orders)}'/>";

ただし、幸運ではありませんが、次のような例外が発生します。

Element type "size" must be followed by either attribute specifications, ">" or "/>".

だから私は使う

var size= &lt;c:out value='${fn:length(orders)}'/&gt;;

代わりに、しかし運はありません。二重引用符を追加した後:

var size= "&lt;c:out value='${fn:length(orders)}'/&gt;";

まだ機能していません..では、エスケープして機能させる方法は?

更新 1

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>
4

2 に答える 2

0

jspx ファイルでは動作しません。jspファイルでできます。

jspx ファイルには整形式の XML が必要です。EL が処理される前に XML が検証されるため、コードは失敗します。

より良い説明については、この投稿を参照してください

于 2015-06-19T12:23:26.777 に答える
0

投稿のリンクの回答に基づいて、最初に必要に応じて変数を定義し、次にその変数の値を JavaScript で使用することをお勧めします。

<c:set var="ordersLength" value="${fn:length(orders)}"/>
<script type="text/javascript">
    var size= "<c:out value='${ordersLength}'/>";
</script>

もう 1 つのオプションは${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変数が設定されておらず、リクエスト属性としても、セッション属性としても、アプリケーション属性としても、ページ属性としても設定されていないことを意味します (回答で提供されたコードでは、その [まだ])。

于 2013-04-26T21:13:28.260 に答える