0

jspで次のコードを使用しています。

<%= scriptletVar%>12,000 のような文字列を返します。値が 12,000 のようにハードコードされている場合、問題なく表示されます。ただし、この値がスクリプトレット変数として渡される場合。12 しか出力されません。値が 000 の別の<tr>タグが作成されます。

ハードコーディングされた場合にどのように機能するかを見つけるのは難しいと思いますが、動的にフェッチされた場合はそうではありません。コンマを含む値に問題がありますが、解決策がわかりません。

 <script type="text/javascript">


        $("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'>   <strong><span></span></strong></td>"+
                "<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong>" +<%= scriptletVar%> +"</strong></td>" +

//Rest of code
4

2 に答える 2

1

JavaScript はクライアント側で実行され、JSP はサーバー側で実行されるため、JSP は JavaScript の前に実行され、そのまま渡され<%= scriptletVar%>ます12,000。期待するほどの文字列ではありませんが、文字列をNumber, Number連結しているため、単一の数値は文字列に解析されます,が、関数の 2 つの別々の引数として解釈されますafter。そのため、文字列として処理したいことを JavaScript が認識していることを確認する必要が12,000あります。これを行うには、値を二重引用符で囲む"か、文字列を連結せず<%= scriptletVar%>に静的文字列値に直接書き込みます。

したがって、次のことを試してください。

$("#table tr:eq(1)").after("<tr><td class='row-highlight txt-ctr'>   <strong><span></span></strong></td>"+
    "<td class='row-highlight txt-right'><strong></strong></td><td class='row-highlight txt-right'><strong><%= scriptletVar%></strong></td>" +
于 2013-08-27T12:17:34.617 に答える