将javascript与java混合

时间:2013-07-03 02:00:09

标签: java javascript

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

此致

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

假设这是jsp文件的一部分,java代码和js代码分别执行。第一个java代码在服务器端获取执行,然后在客户端获取javascript代码。事实上,jsp中的java scriplet渲染了稍后在客户端执行的js代码,在本例中是一个浏览器。
 因此,不能将javascript变量值分配给java变量,但反过来是可能的.T

编辑:

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

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