【问题标题】:How to pass an argument from javascript to a Servlet through JSP如何通过 JSP 将参数从 javascript 传递给 Servlet
【发布时间】:2013-05-30 12:35:22
【问题描述】:
我想做这样的事
function(){
<% ExampleClass sample = new ExampleClass(); %>
var ID = 4;
var something = <%= sample.getSomethingById(ID) %>
}
如何将此 ID 传递给 jsp 表达式?
感谢您的任何建议,抱歉,问题的表述不是很好。
【问题讨论】:
标签:
javascript
jsp
servlets
【解决方案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)请求。
【解决方案2】:
使用隐藏变量,然后将id放入该变量中。使用上面的代码无法通过。
<input type="hidden" name="test" value="your id" />
然后就可以访问like请求参数了。
【解决方案3】:
在呈现 JSP 页面之后,您的 javascript 代码才会执行。因此,您要在脚本中访问的任何 java 变量都需要预先呈现为 javscript 变量。页面呈现后,您无法在 javascript 中执行 java 代码。您不能像这样在 java 代码和 javascript 之间“共享”变量。您的示例可能已简化,但在这种情况下,您可以这样做
var something = <%= sample.getSomethingById(4) %>
【解决方案4】:
你应该使用隐藏字段:-
<input type="hidden" name="hdtest" id="idtest" value="<%=sample.getSomethingById(ID) %>" />
现在在 javascript 中尝试访问该值。
在java脚本中试试这个代码:
var something = document.getElementById('idtest').value;
希望对你有帮助。