外部JavaScript中使用el表达式 200

我在做一个网页,通过struts跳转,想在一个JavaScript中得到struts中reques。setattrib的值,想请教高手一下怎么使用iname[0]="<%... 我在做一个网页,通过struts跳转,想在一个JavaScript中得到struts中reques。setattrib的值,想请教高手一下怎么使用

iname[0]="<%=${imageList[0].imgurl}%>";
iname[1]="<%=${imageList[1].imgurl}%>";
iname[2]="<%=${imageList[2].imgurl}%>";
iname[3]="<%=${imageList[3].imgurl}%>";
iname[4]="<%=${imageList[4].imgurl}%>";

这是我在JavaScript中用的el表达式,但是不能够把el表达式解释,不知哪里错了
展开
 我来答
百度网友211658b42
2009-08-23 · TA获得超过3383个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:589万
展开全部
第一,你的EL表达式写错了。${imageList[0].imgurl}这个就已经是EL表达式了,等同于java脚本式的写法<%=内容省略%>。
第二,即使EL没有写错,但是因为你说是外部引入js文件,那么在那个外部js文件中是不能用EL表达式的,EL表达式无效。

原因我个人觉得是这样:
所有的jsp文件在运行时都会被翻译成java文件,用java输出流去“写”出一份HTML文本代码作为response响应返回给客户端浏览器,浏览器接收到的其实还只是html页面。把EL表达式翻译、计算、赋值等等过程就是在服务器端将jsp翻译成java文件运行并“写”html代码的时候完成的。因为外部js文件的内容并不会直接出现在这个jsp上,所以对于服务器端来说,它不会去翻译外部js内的东西,对于<script src="xxxxx.js">这样的外部引用代码,它只会简单的直接写到response里面去。当response响应送到客户端浏览器的时候,浏览器解释执行html代码,才会去引入这个外部js文件,但是这个过程是在客户端完成的,当然就不存在什么“客户端的EL表达式”,自然不能解释出来,浏览器只会认为<%省略%>那是一个普通的字符串,因为它被引号括起来了。

如果说的不对,还请高人指正
假丨啊07
2009-08-24 · TA获得超过117个赞
知道答主
回答量:80
采纳率:0%
帮助的人:0
展开全部
很明显你的表达式写错了!你用java的表达式包住了el表达式,这是两种表达式,不能在一起使用的。<%= ... %>是java表达式。${ ... }才是el表达式。
应该改成:
iname[0]="${imageList[0].imgurl}";
iname[1]="${imageList[1].imgurl}";
iname[2]="${imageList[2].imgurl}";
iname[3]="${imageList[3].imgurl}";
iname[4]="${imageList[4].imgurl}";

通过el表达式获取request.setAttribute("keyName", ...)的值可以使用如下两种方式:
${requestScope.keyName}
或${keyName}
第一种方式是直接指定了keyName的作用域为request,即读取request中存放的值。
第二种方式会读取page, request, session, application域中的keyName的值。
如果明确要读取的值来自哪个作用域,推荐使用第一种方式!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
土味洋芋
2009-08-23 · 智慧城市架构师,构建未来城市
土味洋芋
采纳数:134 获赞数:1166

向TA提问 私信TA
展开全部
iname[0]="${imageList[0].imgurl }";
注意,EL表达式不是JAVA代码

request.setAttribute();???

这个值JS得不到的,什么功能会需要得到呢?

你想把一个值通过JS值过去吗?那你可以在写URL的时候,把那个值带在后面的参数后面,一定要用这个吗。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b0486a3
2009-08-23 · TA获得超过655个赞
知道小有建树答主
回答量:698
采纳率:0%
帮助的人:477万
展开全部
可以这样,把el输出的值放进一个隐隐域中(文本框设成hidden),然后js调用,就用dom来访问它。直接el写到js里去是不行的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jumpkang
2009-09-11 · TA获得超过503个赞
知道小有建树答主
回答量:343
采纳率:0%
帮助的人:452万
展开全部
iname[0]='<c:out value="${imageList[0].imgurl}"/>';
iname[1]='<c:out value="${imageList[1].imgurl}"/>';
iname[2]='<c:out value="${imageList[2].imgurl}"/>';
iname[3]='<c:out value="${imageList[3].imgurl}"/>';
iname[4]='<c:out value="${imageList[4].imgurl}"/>';
这样写就可以了。
EL表达式不能用<%%>包含起来的,否则就是成了纯java代码了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式