2

我想做这样的事情

function(){
    <% ExampleClass sample = new ExampleClass(); %>
    var ID = 4;
    var something = <%= sample.getSomethingById(ID) %>
}

如何将此 ID 传递给 jsp 表达式?

感谢您的任何建议,抱歉,这个问题的表述不是很好。

4

4 回答 4

1

在呈现 JSP 页面之后,您的 javascript 代码才会执行​​。因此,您想在脚本中访问的任何 java 变量都需要预先呈现为 javscript 变量。页面呈现后,您无法在 javascript 中执行 java 代码。您不能像这样在 java 代码和 javascript 之间“共享”变量。您的示例可能已简化,但在这种情况下,您可以这样做

var something = <%= sample.getSomethingById(4) %>
于 2013-05-30T12:39:09.303 回答
1

使用隐藏变量,然后将 id 放入该变量中。您不能使用上面的代码传递。

<input type="hidden" name="test" value="your id" />

然后您可以访问类似的请求参数。

于 2013-05-30T12:36:57.703 回答
1

您应该使用隐藏字段:-

<input type="hidden" name="hdtest" id="idtest" value="<%=sample.getSomethingById(ID) %>" />

现在在javascript内部尝试访问该值。

在 java 脚本中尝试此代码:

var something = document.getElementById('idtest').value;

希望它会帮助你。

于 2013-05-30T12:47:14.807 回答
1

您还可以使用更高级的方法和工具,例如 Ajax 和 JQuery:

function submitToJsp(){
    $.ajax({
        type: 'POST',
        url: 'mypage.jsp',
        data: {
            id: '123',
            comment:$('#comment').val()
        },
        beforeSend:function(){
            // this is where we append usually a loading image
        },
        success:function(data){
            // successful request; do something with the data
            $('#output').html(data);

        },
        error:function(){
            // failed request; give feedback to user
        }
    });

}

简而言之,通过调用该函数,我们向带有 2 个参数的 jspsubmitToJsp();发送了一个异步(ajax)请求。mypage.jsp

于 2013-05-30T12:48:11.540 回答