如何通过JSP将参数从javascript传递给Servlet

时间:2013-05-30 12:35:22

标签: javascript jsp servlets

我想做那样的事情

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

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

感谢您的任何建议,对不起,问题的解决方案不是很好。

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

var something = <%= sample.getSomethingById(4) %>

答案 2 :(得分:1)

您应该使用隐藏字段: -

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

现在在javascript中尝试访问该值。

在java脚本中尝试此代码:

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

希望它会对你有所帮助。

答案 3 :(得分: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
        }
    });

}

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