任何人都可以帮我解决我的jsp代码的简单问题吗? 这是我的JavaScript jsp页面
function fid()
{
var id=document.getElementById("id").value;
alert(id);
<%
String demo=id; // store id value of java script but not working
or find(id); // or call a function with parameter of java script var value
// both are not working
%>
}
这是我的html页面 -
Enter Student Id<input type='text' id='id'><button type='button' onclick='fid()'>Find</button>
如何在jsp函数中传递js值 我知道我可以用ajax或jquery做到这一点,但我不知道这些语言。欢迎任何建议或代码片段。
答案 0 :(得分:1)
为了让您的服务器响应用户输入,必须发送请求。您可以要求服务器发送以两种方式之一发送响应:
但是服务器本身无法操纵现有页面的DOM。即使使用AJAX,它也必须在客户端有一些代码(通常是JavaScript)来操作页面。
通常情况下,如果您正在进行搜索,我会建议选项1.这样做的好处是更简单,它允许您的用户向后/向前导航或为搜索添加书签(假设您进行GET调用与POST)。见When to Use AJAX and When Not To
如果你想使用AJAX,请调用你的服务器创建你的xmlhttp对象,然后你可以将你的变量传递给@ A4L仅使用AJAX。它看起来像这样:
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// Do what you want with the results from your server
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",'myJSP.jsp/?id=' + id,true);
xmlhttp.send();
然后你的服务器可以提取像@ A4L中提到的参数。您可能希望将您的回复设置为直接文本或javascript可以放在DIV中的HTML块,但这完全取决于您。
免责声明:我不是AJAX的专家。您可以从W3 Schools site
中学到大部分内容答案 1 :(得分:0)
Java脚本在客户端上运行,JSP在服务器上运行。如果你希望你的JS变量来到服务器,因此可以从JSP访问,而不是像var url = 'myJSP.jsp/?id=' + id
那样将它作为请求参数发送到JSP,你可以使用{{{ 1}}
答案 2 :(得分:0)
您的javascript值是客户端,您的scriptlet正在运行服务器端。因此,如果您想在scriptlet中使用javascript变量,则需要提交它们。
要实现此目的,请将它们存储在输入字段中并提交表单,或执行ajax请求。我建议你研究一下JQuery。
答案 3 :(得分:0)
Java script
是Client side
,JSP
在服务器端运行。
因此请使用一些隐藏变量,例如here
答案 4 :(得分:0)
此解决方案不涉及js。正如你所说,你的js和jsp scriptlet在同一个jsp上。试试这个:
<%
//find form was submit, if cmd is not null
if(null != request.getParameter("cmd")) {
String id = request.getParameter("id");
//your logic to find
}
%>
<form action='same.jsp'>
Enter Student Id: <input type='text' id='id' value='${param.id}'/><!-- ${param.id} to restore the previously entered value by user -->
<button name='cmd'>Find</button><!-- removed onclick, added name -->
</form>
P.S。避免使用jsp scriptlet,而是使用JSTL。