请问下var test="<s:property escape='false' value='employment.permissionName[1]'/>";  像这种在js中用变量取值栈中的值可以实现么?

解决方案 »

  1.   

    它只是在解析JSP的时候发现标记就执行对应的操作,它分不出来哪些是HTML哪些是JS...
      

  2.   

    你到action下个断点看看,这个应该很容易发现的。或者你直接取下:
    var test="${employment.permissionName[1]}";  
      

  3.   

    可以的。
    value='${employment.permissionName[1]}'
      

  4.   

    action没有问题我试过了 比如<s:property escape='false' value='employment.XXX'/>xxx是实际属性是可以获取属性值的  但是xxx换成一个变量的话 就失败了  直接输出空 
      

  5.   

    我试了下 不行额
    alert  输出的是"${employment.permissionName[1]}"   
    而不是  期望的属性值
      

  6.   

    我一般都用EL的,这个用的很少,我感觉是你这个  employment  里面的permissionName 没有get 和set 方法。 刚给你找个篇文章,这里肯定有http://blog.csdn.net/lfp0202/article/details/6188484
      

  7.   

    哦 这个permissionName不是属性  而是 我在js中定义的一个字符串数组 我的本意是通过遍历这个数组 来获取相应的employment里的属性  
      

  8.   

    晕死弄了半天这个不是employment的属性。 你是不是想把 后台传来的 employment 这个对象的里面一些属性转变成JS对象?不知道你这个 employment 是个字符串还是一个实体对象,如果是实体对象的话,那么页面应该把他里面的需要在页面用到的属性都拿出来。 比如 employment 里面有个name,一个id。然后我想在JS里面定义一个 employment 也有一个name ,一个id 分别对应后台的。
    var employment={
       name:'<s:property escape='false' value='employment.name]'/> ',
       id:'<s:property escape='false' value='employment.id]'/> '}; 这样页面的JS就有了
      

  9.   

    嗯 这样是可以  如果可以把对象整个拿到js里面也可以 但是我现在这边 由于employment里面需要的属性比较多 所以这样写的话感觉 js会写得比较臃肿  就想着通过变量简化js代码  
      

  10.   

    那你就后台转JSON就好了JsonObject object=JsonObject.fromObject(employment);request.setAtt...("employment",object)var employment=eval('<s:property escape='false' value='employment]'/> ');这样够简单了吧。。
      

  11.   

    不知道你框架里面有没有JSON的JAR包,我这边用的是 net.sf.json 这个比较好用 有些可能转换不过来,当你里面属性太多的话 特别是有些关系的 你把那些不需要的属性都制空。