0

基本上我的问题是当我想将 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>

问候

4

3 回答 3

2

假设这一切都在 JSP 内部。java 代码(scriptlet,<% %> 标签内的所有内容)将执行服务器端,而 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 scriplet 会渲染 js 代码,以便稍后在客户端(在本例中是浏览器)上执行。
因此,不能将 javascript 变量值分配给 java 变量,但反过来是可能的。T

编辑:

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

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

希望这可以帮助。

于 2013-07-03T02:53:47.827 回答