0

こんにちは私はjsp内のタグ内のjavascript呼び出し内にjava変数を出力する必要があります!

例えば:

 <% String param = "hello";%>

<dmf:checkbox  name="checkbox"
  onclick = "selectAll(<%=param%>)"
/>

生成されるJavaScriptは次のとおりです。

selectAll(<%=param%>),this);でも実際は

selectAllCheckBoxes(Hello),this);
4

3 に答える 3

2

それは逃げていません。これは、JavaScript変数であるかのようにスクリプトレット変数を出力するだけです。

その上、あなたの例は紛らわしく、それらは互いに一致せず、Javascriptコードは構文的に無効です。少なくとも、JavaScriptの文字列変数は引用符で囲まれていることがわかります。あなたがで終わりたいなら

selectAllCheckBoxes('Hello', this);

ここで、スクリプトレットローカル変数Helloの値として取得する必要があります(これは予約済みの変数名です。自分で使用しないでください)。次に、次のことを行う必要があります。nameparam

selectAllCheckBoxes('<%= name %>', this);

同じように、あなたが

onclick="selectAll('Hello')"

あなたがする必要があります

onclick="selectAll('<%= name %>')"

とはいえ、10年以上前から推奨されていない昔ながらのスクリプトレットの使用をやめることを強くお勧めします。JSPプログラマーは、JSPコードをよりクリーンで堅牢にし、保守しやすくするためにのみ、taglibsとELを使用することをお勧めしました。JSTLなどのtaglibsを使用してJSPページのフローを制御したり、ELを使用して「バックエンド」データにアクセスしたりできます。あなたの例は次のように置き換えることができます:

<c:set var="name" value="Hello" />

...

selectAllCheckBoxes('${name}', this);
于 2009-12-24T11:05:30.310 に答える
1

多分あなたはこれを達成しようとしていますか?

var myVar = '<%= (String)request.getParameter("tab") %>'; 
loadtabs(myVar);
于 2011-11-26T00:21:37.693 に答える
1

次のように、スクリプトレットを使用して属性値全体を生成します。

<dmf:checkbox  name="checkbox"
   onclick = "<%= "selectAll(" + param + ")" %>" />
于 2009-12-24T10:55:48.227 に答える