2012-03-13 196 views
-1

我做了一个数据库项目,使用mysql作为数据库,jsp用于我的前端部分以及用于交互的javascript和ajax。 现在的问题是我需要分配一个java脚本变量,它有一个字符串到一个jsp变量。如何为jsp字符串变量分配一个javascript变量?

我用下面的语句做了这个?

<%String str =“document.write(s)”; %>其中“s”已经被定义为

<script type="text/javascript"> 
var s="hello world"; 
<script> 

但读音字

得到错误的赋值语句(其以粗体显示以上)不正确的语法? 错误我m到处是 -

check the manual that corresponds to your MySQL server version for the right syntax to use near '<script>document.write(s)</script>' 

什么是错误在这个语句或者是有在做这个任务的任何其他方法?

任何人都可以帮忙吗?

回答

1

你不能这样做。在执行Javascript语句之前,JSP语句在服务器端执行,在浏览器接收到http响应后执行客户端。

目前尚不清楚你的目标,但如果你只需要在页面中显示一个javascript变量的值,你可以使用:

  • 琐碎的javascript:

    document.write(s); 
    
  • 针对现有元素:

    document.getElementById('myElementId').innerHTML = s; 
    
  • 使用jQuery:

    $('#myElementId').html(s); 
    
0

如果我理解正确,你正在试图建立并执行基于用户输入的SQL查询是由JavaScript处理。正如ADC所说,由于jsp在服务器端执行,因此在浏览器执行javascript之前无法完成。你可以做的是创建sql查询并将其作为参数传递给不同的jsp/servlet(或者如果你可以处理这种情况,则是相同的),这将执行查询

+0

这就是我需要的,我需要通过我的sql stmt到另一个文件,但它不工作,所以我试图在一个单一的文件..如何将查询传递给不同的jsp,在这里,该字符串查询是一个临时变量? – user1249909 2012-03-13 10:25:28

0

在构建sql语句的第一页变量s你应该把这样的东西

<script> 
var s = "hello world"; 
function createLink(){ 
    document.getElementById('mylink').href= 'page2.jsp?statement='+s; 
} 
window.onload=createLink; 

</script> 

<a id="mylink" href=""/>Click to exexute query</a> 

它创建一个链接到你的第二页(page2.jsp)传递语句作为参数。

现在page2.jsp你应该retreive参数值一样

<% String statement = request.getParameter("statement") %> 

,然后执行查询。

更好的是,您应该使用servlet而不是jsp页面来执行查询。您可以阅读jsp/sevlets的教程,以了解如何完成这项工作。 http://www.laliluna.de/articles/posts/first-java-servlets-jsp-tutorial.html

相关问题