如何在jQuery中添加JSP变量?
问题描述:
我从文件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
答
以下行
$.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) {
答
你忘了引号“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) {
在我的情况下,我把用户名作为表单中的输入。为了简单起见,我省略了它编辑了这个问题。 – NewUser 2013-03-23 15:13:17
你的解释给了我暗示应该是什么解决方案。在我使用表单的页面中,我可以使用您提供的解决方案,但是,我将使用userId设置会话,因此对于该建议我使用scriptlet。 – NewUser 2013-03-23 15:22:52
请勿使用scriptlet。使用JSP EL和JSTL:'$ .getJSON('db.jsp?userid = $ {theSessionAttribute}',函数(data)' – 2013-03-23 15:24:20