任何人都可以帮我从name变量中获取值并将其存储在name_val中吗?
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script type="text/javascript">
function dropdelete(ev)
{
var name=document.getElementById("user"+stringToArray[1]).value;
}
<% String name_val ; %>
</script>
</head>
<body>
</html>
答案 0 :(得分:3)
你做不到。这没有任何意义。您的name_val
声明位于服务器端JSP脚本中。在生成页面并将其发送到客户端时,它在服务器上执行。这种情况很久以前发生,并且与客户端在您页面上执行Javascript无关。
当页面发送到客户端时,您的JSP代码已经运行并完成。这就是JSP的工作原理。
你必须重新考虑一下你的设计。您可以将相关逻辑移动到客户端Javascript中,或者将数据提交回服务器进行处理(AJAX样式或新请求,例如通过表单,或重定向中的GET参数),或者某些东西,但无论如何,你我必须找到另一种方式。
答案 1 :(得分:3)
javascript是客户端,jsp是服务器端。所以你无法存储
String name_val = document.getElementById(“user”+ stringToArray [1])。value;
以下列方式尝试ajax
var name=document.getElementById("user"+stringToArray[1]).value;
$.ajax(
{
type: "POST",
url: "store.jsp", //Your full URL goes here
data: { name: name},
success: function(data, textStatus, jqXHR){
alert(data);
},
error: function(jqXHR){
alert(jqXHR.responseStatus);
}
});
现在在store.jsp
<%String name_val =request.getparameter("name");%>
答案 2 :(得分:2)
您无法获取JavaScript值并存储到Java变量中,因为JavaScript在客户端执行,而Java变量在服务器端执行。在这种情况下,服务器端首先执行,然后是客户端
或者,您可以使用表单将值存储在隐藏字段中,并通过foorm提交来使用。
<input type="hidden" id="hiddenField"/>
<强>的Javascript 强>
document.getElementById("hiddenField").value=xxx;
答案 3 :(得分:0)
你无法直接得到它,但是当然如果值是由服务器端预先填充的并且你要将name_val
的值存储在隐藏字段或其他DOM元素中,那么你可以使用javscript或者jquery来访问它。
<input type="hidden" id="nameValue" value=${nameValue}>
然后以
的形式访问它document.getElementById("nameValue").value;
<强>更新强>
为了向我的答案添加一些上下文,我假设从控制servlet调用上述JSP(重定向)。
这个servlet可以设置一个发送到JSP页面的请求参数
JSP页面可以读取请求参数并将其存储在隐藏字段
中页面加载后,Javascript或Jquery可以从隐藏字段中读取值并使用它。
我想这就是OP想要做的事情,也就是说,使用该值,而不仅仅是将其存储在变量中。