将javascript与java混合使用

mixing javascript with java

本文关键字:混合 java javascript      更新时间:2023-09-26

基本上,我的问题是当我想将javascript与java代码混合时,因为当我放入"<%"开始放入java代码时,我没有使用变量(var nombreRodamiento javascript)。请注意粗体行,这是编译器不喜欢的。

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

问候

假设这一切都在JSP内部。java代码(scriptlet,<%%>标记中的所有内容)将在服务器端执行,javascript将在客户端执行(在用户浏览器中)。然而,您似乎在为java变量分配javascript变量的值,nombreRodamiento。这是行不通的。javascript只是文本,没有任何值、执行上下文等,无论何时评估scripplet。

Java字符串需要双引号,并且缺少分号,Java不会自动插入分号。

假设这是jsp文件的一部分,java代码和js代码分别执行。首先在服务器端执行java代码,然后在客户端执行javascript代码。在jsp中填充java脚本将呈现稍后在客户端(在本例中是浏览器)上执行的js代码
因此,不能将javascript变量值分配给java变量,但反过来也是可能的。T

编辑:

我可以给你步骤,因为我不知道你的服务器端实现。

  1. 呈现页面。您必须通过服务器端的某种类型的数组或等效对象来呈现列表。在会话中同时保存右侧元素和左侧元素
  2. 当列表框进行一些元素交换时。散发你的js代码
  3. 您必须在服务器端更新相同的内容,因此使用ajax将选定的元素索引和端信息发送到服务器端
  4. 相应地更新会话中的服务器端列表对象。如果需要,请更新数据库
  5. 从下一次渲染此列表框开始,在服务器端会话上起诉此对象

希望这能有所帮助。