我使用的是jsp格式的eclipse 3.2 tomcat server 5.5。我有一个问题,将var变量(javascript)转换为int变量(java)。这样做的正确方法是什么?
在html正文中,我使用此方法抛出:
String qwerty = Integer.toString(f);
String asdf = Integer.toString(d);
System.out.println("CONVERTED VALUE : "+qwerty+" "+asdf);
%>
<input type="hidden" id="balance" name="balance" value="<%=qwerty%>" />
<input type="hidden" id="loop" name="loop" value="<%=asdf%>" />
<%
System.out.println("VALUES : "+balance+" "+loop);
在html head(脚本)中:
<script>
function myfunction()
{
var looping = document.getElementById("loop").value;
var balancing = document.getElementById("balance").value;
<%
String loop="<%=document.writeln(looping)%>";
String balance="<%=document.writeln(balancing)%>";
int balance = Integer.parseInt(balancing);
int loop = Integer.parseInt(looping);
%>
..........................cont
如何将此var转换为字符串?
答案 0 :(得分:3)
您需要了解Java是在服务器端运行,而JavaScript是在客户端运行。它们运行在不同的上下文和层,最常见的是物理机器(欢呼声,本地主机)。在您的问题的上下文中,java代码用于生成HTML / JS(在服务器上),用于通常在浏览器(在客户端)内与最终用户进行通信。因此,他们不会很好/直接地“看到”彼此。
只要您了解这些事实并记住HTTP的基础知识,就可以通过请求 - 响应模型来处理服务器 - 客户端通信。在这种情况下,您可以在视图文件中“打印”数据以向客户端发送信息,如var passedFromJava = ${bean.data};
中所示,以便最终在响应正文中。相反,当客户端触发请求(提交具有例如input
元素的表单)时,所提交表单的所有输入最终都作为请求参数,并且可以在Java中以String fromHtmlPage = request.getParameter("inputName");
获得。您当然可以从JavaScript端添加此类参数,例如<input type="hidden">
元素,将它们作为数据添加到AJAX请求等等。但要明白直接JavaScript对Java是不可见的:通信手段就是HTTP。
顺便说一下,现在不欢迎使用scriptlet(%
)。有关更多信息,请参阅经典:How to avoid Java code in JSP files?。