0

基本的に私の問題は、「<%」を入力してJavaコードを配置するときに変数(var nombreRodamiento javascript)を使用しなかったため、javascriptとJavaコードを混在させたい場合です。コンパイラが好まない太字の行に注意してください。

<script type="text/javaScript">
function moveToRightOrLeft(side) {
    var listLeft = document.getElementById('selectLeft');
    var listRight = document.getElementById('selectRight');
    if (side == 1) {//izquierda
        if (listLeft.options.length == 0) {
            alert('Ya aprobaste todos los items');
            return false;
        } else {
            var rodamientoElegido = listLeft.options.selectedIndex;
            var nombreRodamiento = listLeft.options[rodamientoElegido].text;
            move(listRight, listLeft.options[rodamientoElegido].value,
                    listLeft.options[rodamientoElegido].text);
            listLeft.remove(rodamientoElegido);
            <%
            **String nombreRodamiento = '%> nombreRodamiento;<%'**
            for (int i=0;i<listaItems.size();i++){
                if (listaItems.get(i).equals(nombreRodamiento))
                    listaItems.remove(i);
            }
            %>
            if (listLeft.options.length > 0) {
                listLeft.options[0].selected = true;
            }
        }
    }
}
</script>

よろしく

4

3 に答える 3

2

これがすべて JSP 内にあると仮定します。Java コード (スクリプトレット、<% %> タグ内のすべて) はサーバー側で実行され、JavaScript はクライアント側 (ユーザーのブラウザー) で実行されます。それでも、Java変数にjavascript変数nombreRodamientoの値を割り当てているようです。それはうまくいきません。JavaScript は、スクリプトレットが評価されているときはいつでも、値や実行コンテキストなどを持たない単なるテキストです。

于 2013-07-03T02:36:10.363 に答える
1

Java 文字列には二重引用符が必要ですが、Java が自動的に挿入しないセミコロンがありません。

于 2013-07-03T02:02:03.203 に答える
0

これが jsp ファイルの一部であると仮定すると、java コードと js コードは別々に実行されます。最初のJavaコードはサーバー側で実行され、次にJavaScriptコードがクライアント側で実行されます。実際、jsp の Java スクリプトレットは、後でクライアント (この場合はブラウザー) で実行される js コードをレンダリングします。
したがって、javascript 変数の値を java 変数に割り当てることはできませんが、その逆は可能です。

編集:

サーバー側の実装がわからないので、手順を説明できます。

  1. ページをレンダリングします。サーバー側で何らかのタイプの配列または同等のオブジェクトによってリストをレンダリングする必要があります。セッションで右側と左側の両方の要素を保存します。
  2. リストボックスが何らかの要素交換を行うとき。js コードを実行します。
  3. サーバー側で同じものを更新する必要があるため、選択した要素のインデックスとサイド情報を ajax を使用してサーバー側に送信します。
  4. それに応じて、セッション内のサーバー側リスト オブジェクトを更新します。必要に応じてデータベースを更新します。
  5. 次回から、サーバー側セッションでこのオブジェクトを使用して、このリスト ボックスをレンダリングします。

お役に立てれば。

于 2013-07-03T02:53:47.827 に答える