2014-11-14 38 views
0

我想将代码标题和价格作为参数发送给书对象,但会给出非法的启动表达式错误。如何在jsp中的java代码中使用Javascript变量作为参数?

function addrecord() { 
    code = document.getElementById('code').value; 
      title = document.getElementById('title').value; 
      price = parseFloat(document.getElementById('price').value); 

    <% Book book = new Book(%> code <% ,%> title <% , %> price <%); 
    bookdb.addRecord(book); 
      %> 
      document.getElementById("code").value = ""; 
      document.getElementById("title").value = ""; 
      document.getElementById("price").value = ""; 
    } 
+0

请告诉我们你已经尝试了什么,以及你的具体问题是什么。 – Neeku 2014-11-14 23:51:40

回答

3

您误解了java和javascript的运行位置。 您使用<%和%>,就好像它将值发送到服务器一样,而不是。这些标签仅用于jsp内部以启动Java代码片段。这仅适用于您生成页面的情况。一旦你的html在你的浏览器中,这些标签将不会执行任何操作。

突出重要的关键词,当你请求一个jsp页面与您的浏览器,则浏览器打开一个网络连接到服务器不打算作为sarcarsm

。把这两个(浏览器,服务器)想象成生活在两个完全不同的地方。

服务器然后运行java代码。当它执行时,它会生成一个html页面。 这HTML页面通过网络连接发送回客户端(您的浏览器

浏览器将收到此完全形成HTML页面,并使用它来创建它的视图。在这个页面上,你可以运行JavaScript,但JavaScript的只能在客户端(浏览器

运行,以得到任何变量回服务器再次,你将需要:GET或POST表单(使用一个表格内提交,或使用JavaScript post request like a form submit),做一个阿贾克斯调用(http://www.javascriptkit.com/dhtmltutors/ajaxgetpost.shtml)或让用户点击链接(a href =“...你的页面”)。

最简单的方法就是做:

<form method="POST" action="your/page/url"> 
    <input type="hidden" name="someName" value="someValue" /> 
    <input type="submit" /> 
</form> 

读一些链接,并确保你记住,你的浏览器和服务器是分开的,因此运行在浏览器中的JavaScript将不会到达服务器。

相关问题