我想做那样的事情
function(){
<% ExampleClass sample = new ExampleClass(); %>
var ID = 4;
var something = <%= sample.getSomethingById(ID) %>
}
如何将此ID传递给jsp表达式?
感谢您的任何建议,对不起,问题的解决方案不是很好。
答案 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)请求。