Haisen大王 2015-11-27 15:57 采纳率: 50%
浏览 1570
已采纳

Struts2 国际化文件中 EL 表达式怎么能执行 方法呢??

图片说明
图片说明

就是对于 ${getText(fieldName)} 产生了疑惑。
EL不是只能调用 属性吗?得是有getXxx(); ----- ${xxx} ,原来认识是应该这样用啊。

我知道 Ognl可以强制 表达式 解析。可以调用对象栈 中对象的 方法。

但是EL如此用,有点理解不了。

  • 写回答

2条回答 默认 最新

  • Haisen大王 2015-11-28 04:51
    关注

    突然明白了,EL表达式用处 是在JSP页面。。
    这是在XML,properties文件。里,${} 表示的不是EL表达式,而是Ognl
    ——————————————————————————————————————————————————————
    struts2提供三种方式通过ognl表达式来取ValueStack中的数据:#、%{}、${}
      #和%{}需要放到struts2提供的标签里才生效。如:、
      一、最常用的方式是:#
      1.#能取request、session、application里的attribute,但需要加前缀。如:、。如果是取request范围的attribute,那么不需要加request前缀,加上反而取不到数据,ognl默认从request里取,如果没有取到并不会到session或application里取。如:
      2.#能取request里的请求参数,但必须加parameters前缀,且取到的是一个数组,所以如果你要得到参数的第一项值,那么还要加下标。如:。这相当于调用request.getParameterValues("name")[0];
      3.#加attr前缀能按request > session > application顺序获取attribute,这样当在request中取不到时,会自动向session里取,如果session里也取不到,会再向application里取。如果取到则返回,不再向上游历。如:
      4.#能构造Map,如:
      5.#能用于过滤和投影(projecting)集合,如:books.{?#this.price   以上第4、5项功能,我没有做过多介绍,因为目前为止这两项功能我使用并不多。
      二、%{}的用途是在标签的属性为字符串类型时,计算OGNL表达式的值。这个功能目前还没有深刻体会,故不介绍。
      三、${}有两个主要的用途。
      1.用于在国际化资源文件中,引用OGNL表达式。
      2.在Struts 2配置文件中,引用OGNL表达式。如 :
      


    ListPhotos.action?albumId=${albumId}

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置