如何在scriptlet中使用脚本变量

时间:2013-11-19 05:36:21

标签: java javascript jsp

任何人都可以帮我从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>

4 个答案:

答案 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想要做的事情,也就是说,使用该值,而不仅仅是将其存储在变量中。