我有以下情况
<select name="dropdown_Source" onchange="call()">
<% for (int i=0 ; i < a1.length; i++) { if (a1[i]==n ull) break; %>
<option value="<%=a1[i]%>">
<%=a1[i]%>
</option>
<% } %>
</select>
<script>
function call() {
var source = document.forms[0].dropdown_source.value;
// Now this 'source' value i have to pass to jsp function
<%
Admin a = new Admin(); //this is class defined
a.getResult(source); //but source is not resolved here
%>
}
</script>
我应该如何在JSP函数中传递此source
值?
a.getResult()
- 函数将返回下拉元素列表和该列表
我必须填入另一个<option>
标记。
答案 0 :(得分:3)
你做不到。在JSP页面编译完成后,JavaScript将在客户端执行,并以response
发送到浏览器。
答案 1 :(得分:2)
你不能混合使用javascript和java代码。当你做的时候
<%
Admin a = new Admin(); //this is class defined
a.getResult(source); //but source is not resolved here
%>
这意味着代码片段将在服务器端处理,因为这是普通的java代码。现在变量“source”不是java变量,而是一个javascript变量,当你的html页面在浏览器上加载时它会出现。所以它是一个编译错误。
答案 2 :(得分:1)
这里最好的做法是,一旦javascript执行,获取该源值并对服务器进行AJAX调用,处理它并将值发送回客户端,然后填充下拉列表。