2013-07-24 46 views
0

我是新来的.jsp和servlets,并有一个表达式语言问题。在我的Java Servlet文件,我设置一个属性:表达式语言...如何在已解析的表达式中添加引号?

HttpServletRequest request; 
.... 
request.getSession().setAttribute("myValues", "TEST"); 
在我的.jsp文件

于是,我试图调用处理属性值的函数:

<script> 
     myForm.initSelect(${myValues}); 
    </script> 

当我看Java控制台中已部署的结果,$ {myValues} EL已经解析为TEST(不包括引号),并且我得到的TEST未定义错误。我想,结果显示:

myForm.initSelect("TEST"); 

我在哪里传递值“TEST”(如引用字符串)到我initSelect功能。

我曾尝试加上引号,如:

myForm.initSelect("${myValues}"); 
myForm.initSelect(\"${myValues}\"); 
使用单引号

和其他一些变化,但那些没有产生预期的结果。任何人都可以提供一些建议吗?谢谢。

+0

'myForm.initSelect( “$ {} myValues”);'是正确的。它做错了什么?你会得到什么输出?当然,如果实际值包含一个双引号(例如'TE“ST'),则生成的JS将不正确。正确地JS-转义该值以避免此问题 –

+0

'request.getSession()。setAttribute “myValues”,“\”TEST \“”);' – alfasin

+0

@JBNizet,谢谢。我看到一些奇怪的结尾引号正在消失......但事实证明,我在字符串中有很多空格,如何将标注的评论标记为正确的答案? – w2p2k

回答

0

没有什么错在myForm.initSelect("${myValues}");

将进行评估,以

myForm.initSelect( “ABC”);

,如果你有request.getSession().setAttribute("myValues", "ABC");