在jsp字符串变量中存储java脚本值
有人能帮我解决jsp代码的简单问题吗? 这是我的带有JavaScript的jsp页面在jsp字符串变量中存储java脚本值,java,javascript,jquery,ajax,jsp,Java,Javascript,Jquery,Ajax,Jsp,有人能帮我解决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);
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
%>
}
函数fid()
{
var id=document.getElementById(“id”).value;
警报(id);
}
这是我的html页面--
输入Student IdFind
如何在jsp函数中传递js值。我知道我可以用ajax或jquery实现这一点,但我不懂这些语言。欢迎提供任何建议或代码片段。Java脚本在客户机上运行,JSP在服务器上运行。如果您希望JS变量进入服务器,从而可以从JSP访问,那么您必须使用类似于
var url='myJSP.JSP/?id='+id
的东西将其作为请求参数发送到JSP,并且在JSP中,您可以使用request.getParameter(“id”)
从客户端检索javascript值,您的scriptlet正在服务器端运行。因此,如果您想在scriptlet中使用javascript变量,则需要提交它们
要实现这一点,可以将它们存储在输入字段中并提交表单,也可以执行ajax请求。我建议您查看JQuery以了解这一点。
Java脚本
是客户端
,而JSP
在服务器端运行
因此,使用一些隐藏变量,如服务器端和客户端
为了允许服务器响应用户输入,必须发送请求。您可以要求服务器通过以下两种方式之一发送响应:
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这样的参数。您可能希望您的响应只是纯文本或HTML块,javascript可以将其放在DIV中,但这取决于您自己
免责声明:我不是AJAX专家。这其中大部分是您可以从本解决方案中学习到的,本解决方案不涉及js。正如您所说,您的js和jsp scriplet位于同一个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>
输入学生Id:
发现
p.S.避免使用jsp scriplets,而是使用JSTL。我使用了这段代码。但我确实工作正常。是否需要更改以使用它-window.location.replace(“hello.jsp?id=“+id”);然后输入jsp代码-System.out.println(request.getParameter(“id”);在url中传递值。但打印是“空的”。这段代码对我有帮助吗?我也想告诉你们。我得把它印在某一页上。下一页我做不到。所以不要告诉我下一页的值。这就是为什么我不习惯使用js、ajax和jquery。我知道我可以在下一页上得到值。首先,你不能从JavaScript调用scriptlet函数,你需要将它提交到一个servlet或另一个JSP页面并在那里进行处理,这就是它的工作原理。请解释你真正的问题是什么。顺便说一句,你听起来像是医生,有些东西很痛,请告诉我我有什么。@VijayKumarKhushlani你能告诉我你想要实现什么吗?似乎您想使用scriptlet在同一页上创建一些东西,如果您很少给出您想要实现的东西,那么只有一些能够提供解决方案。兄弟,我需要在某一页上这样做。请给我一个电话,嗯。你能给我JQuery代码吗。请告诉我如何使用该代码。我只是习惯于我的工作。不知道它是怎么工作的。就像我说的,兄弟,我需要在同一页上。给我ajax或JQuery代码
<%
//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>