- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts2-6OGNL概要
OGNL OGNL Object-Graph Navigation Language 作用: 提取需要的数据,用在表现层中,将数据呈现给用户 提取需要的数据,用在struts配置文件中 示例: 提取Action中的数据,呈现给用户 testOgnl0020.action test0020success.jsp 注意的地方: Action中的属性,必须配置getter方法,struts才能通过ONGL提取其值; 在页面中,必须将OGNL表达式与struts标签联合使用,才能解析求值 配置文件中,使用${表达式}的方式使用 常用的struts标签为s:property value=“xxx” /标签 OGNL 功能: 访问对象基本属性 访问容器内变量 支持常用操作符:+,-,*,/, ++, --,==,!=,in ,not in等 支持对集合的访问 支持任意类型对象的构建 支持静态方法变量的访问 调用对象方法 对集合投影、选择 对基本对象属性的访问 使用 ●(点) 将对象的引用串联起来,获取属性值 eg: user.name user.address.city, user.car.tire.size OGNL表达式求值范围——OGNL Context ValueStack是默认取值空间,即ONGL的根,不为表达式指定任何求值范围时,默认根中查找(从栈顶到栈底); 其他范围内求值,需要使用 # 号来指定取值范围 #request, #session, #parameters,#application,#attr attr:按照request,session,application的顺序查找,返回找到的第一个匹配的值; ValueStack,值栈,主要是存放Action实例和国际化资源; 每个Action都有一个值栈,并且当前的Action会被自动压入到栈中,因此,对当前Action的属性可以直接使用ONGL表达式访问; 如果在服务端从一个Action跳转到另一个Action,这两个Action将按照执行的先后顺序压入同一个值栈中。 s:debug /标签 OGNL进阶 调用对象的普通方法 Action中建立public String getTotal()方法; JSP中,使用s:property value=“getTotal()” /调用, 结果:在页面中输出getTotal返回的字符串; Client中建立public String getEnglishLevel()方法; 使用s:property value=“c.getEnglishLevel()” /调用 结果:在页面中输出getEnglishLevel返回的字符串; s:property value=“c.username.length()/ OGNL进阶 调用静态方法 constant name=struts.ognl.allowStaticMethodAccess value=true/ 在LoginAction中增加如下方法:public static String getSta() { return 这是LoginAction中的静态方法; } 然后在loginSuc.jsp中增加如下代码: 调用Action中的静态方法: s:property value=@com.asm.LoginAction@getSta()/br 调用LoginAction中的静态方_方式(2): s:property value=@vs@getSta()/br OGNL进阶 调用普通类的构造方法 调用普通类中的构造方法 :s:property value=new vo.Student(jack,20,85.5)/br 调用普通类中的构造方法并访问其字段 :s:property value=newvo.Student(jack,20,85.5).name/ OGNL进阶 集合对象 投影 过滤 示例:testOgnl0050.action OGNl进阶 [N]语法和top语法 [N],用来指定搜索的起始位置,从该位置开始搜索,直到找到或者搜索完整个栈; 栈顶对象为[0]; top:表示栈顶对象 [2].top, 取出栈中的第二对象 当通过Chain方式,连续执行多个Aciton,多个Action将共享同一个值栈。如果多个Actioin中,存在同名的属性,则可以通过[N]语法来明确指定OGNL查找的起始位置;通过[N].top语法明确指定Action。 OGNL进阶 配置文件中使用OGNL 国际化资源文件中,使用OGNL表达式 配置文件中使用OGNL表达式 action?name=saveUser?class
您可能关注的文档
最近下载
- 飞行中鸟击的危害与防范(共48张PPT).ppt VIP
- 统编版小学语文二年级上册第六单元 先辈伟人 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx VIP
- 历史记载-中西闻见录15.pdf VIP
- 历史记载-中西闻见录13.pdf VIP
- 医疗文书书写及规范.ppt VIP
- 统编版语文二年级上册第六单元 追寻伟人足迹单元任务群整体公开课一等奖创新教学设计.docx VIP
- 合力CPCD35-KU5Y4G3 叉车零件图册l.pdf VIP
- 历史记载-中西闻见录12.pdf VIP
- 课前小游戏-看字说颜色(必须wps打开).pptx VIP
- 历史记载-中西闻见录11.pdf VIP
文档评论(0)