2013-03-23 122 views
1

我从文件db.jsp获取一些JSON数据。 jsp文件从我的数据库中获取用户详细信息,并以JSON格式打印,我使用get方法实现此目的。如何在jQuery中添加JSP变量?

我的网址应该是这样的:db.jsp?userid=DIBYA这里的值'DIBYA'是用户输入的。我试图连接为:

function submit() { 
    $.getJSON('db.jsp?userid='+<%String userName = request.getParameter("userid"); out.print(userName);%>, function(data) { 

但是,我的控制台显示错误消息为ReferenceError: DIBYA is not defined。请告诉我在我的代码中需要进行哪些更改?

感谢

Dibya

回答

0

以下行

$.getJSON('db.jsp?userid='+<%String userName = "DIBYA"; out.print(userName);%>, function(data) { 

将通过JSP容器被翻译成下面的JavaScript代码:

$.getJSON('db.jsp?userid='+DIBYA, function(data) { 

因此,在浏览器中的JavaScript引擎将寻找名为DIBYA一个JavaScript变量。

如果你只是希望值是字符串DIBYA,我甚至不明白你为什么使用scriptlet。只是使用

$.getJSON('db.jsp?userid=DIBYA', function(data) { 
+0

在我的情况下,我把用户名作为表单中的输入。为了简单起见,我省略了它编辑了这个问题。 – NewUser 2013-03-23 15:13:17

+0

你的解释给了我暗示应该是什么解决方案。在我使用表单的页面中,我可以使用您提供的解决方案,但是,我将使用userId设置会话,因此对于该建议我使用scriptlet。 – NewUser 2013-03-23 15:22:52

+0

请勿使用scriptlet。使用JSP EL和JSTL:'$ .getJSON('db.jsp?userid = $ {theSessionAttribute}',函数(data)' – 2013-03-23 15:24:20

1

你忘了引号“DIBYA”。您的代码扩展为:

function submit() { 
    $.getJSON('db.jsp?userid='+DIBYA, function(data) { 

但你想:

function submit() { 
    $.getJSON('db.jsp?userid='+'DIBYA', function(data) { 

或更好:

function submit() { 
    $.getJSON('db.jsp?userid=DIBYA', function(data) { 

所以,你需要写这样的:

function submit() { 
    $.getJSON('db.jsp?userid=<% out.print(userName);%>', function(data) { 
+0

嗯,我已经给了一个演示,我知道用户名,但我已经提到,我将使用用户名变量作为输入。 – NewUser 2013-03-23 15:11:03

+0

当然。我把代码放到JSP引擎后面。 – 2013-03-23 15:14:16

+0

+1提供解决方案。我知道什么是错的后,我自己想出了它.. – NewUser 2013-03-23 15:19:20