Struts2_19_OGNL标签学习
来源:互联网 发布:csol游戏数据异常 编辑:程序博客网 时间:2024/06/16 13:52
一. 开始
我跟着视频学习ognl,一开始我也不知道什么是ognl表达式,所以如果有人看到这里,希望可以看下面一个简单的示例,就会明白他的作用。
其实ognl表达式语法和面向对象语法很像,很简单。
二.具体操作
1. 准备工程
新建一个工程,导入jar宝,修改web.xml
增加struts.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <!-- 添加了这个表示处于开发模式,更改文件不需要重启服务器就可以得到及时的反馈 --> <constant name="struts.devMode" value="true" /> <package name="ognl" namespace="/ognl" extends="struts-default"> <action name="ognl" class="com.shiyang.Action.OgnlTestAction"> <result> /OGNLTest.jsp </result> </action> </package></struts>新建java包、OgnlTestAction类、和OGNLTest.jsp,之后的示例操作会主要编写这几个文件
2. 利用ognl标签访问值栈中action的普通成员(这个之前已经做过了,通过这个明白什么是ognl):
编写index.jsp,完成跳转和传参数
在action中编写,添加参数变量和getset
编写OGNLTest.jsp显示两个参数的值:
运行结果:
OGNL表达式是下图中红圈部分,红圈外面是标签,表达是表达式,是引号里面的东西,我们只需要关注引号中的部分。
3. 访问值栈中普通对象的属性
新建一个User类,添加一个age属性,添加getset和toString方法
修改action
修改jsp页面显示数据
显示结果;
注意: 1.值栈中的对象只有传值之后才会实例化,如果我们没有传参数,值栈中user将会是null,另外如果在代码中为user提供参数构造并且在action中new user(10);也会正常显示
2. domain类必须要显示的写无参构造。
4. 访问值栈中对象的对象的属性
新建cat和dog类:
dog类:
cat类:
编写action
编写显示jsp
编写index.jsp传参数:
运行结果:
5. 访问值栈中对象普通方法(java方法)
修改显示jsp:
显示结果:
我们可以看到,我们用对象 点出了java的length方法获得长度。
我们再来一个,在cat类中添加方法:
在显示jsp中调用:
结果:
再来一个,在action中添加一个方法:
修改显示jsp:
显示结果:
6. 访问静态方法
首先在struts.xml中配置一个:
新建一个类,新建静态方法:
修改显示jsp:注意使用@包名类名@方法
显示结果:
7. 静态属性
在上一个类中添加静态变量:
修改显示jsp:
显示结果:
8. 访问Math类中的方法
显示结果:
9. 访问普通类中的构造方法
现在User中添加带参数的构造。
修改显示jsp:
结果:
10. 访问值栈中的集合,list、set、map
修改action类:
修改显示类:
显示结果:
11. 投影(过滤)
?代表条件,^代表从前面第一个$代表从最后面一个
显示结果
12 ,最后一个: []
显示结果;
注意:
如果是[0]代表了值栈中所有的值
我们的action永远在最上面,如果是服务器跳转,会有多个action在值栈中。
- Struts2_19_OGNL标签学习
- 标签学习
- 标签学习
- 学习标签
- html 标签学习-列表标签
- Struts2标签学习:hidden标签
- 自定义标签学习笔记
- jstl标签学习
- JST标签学习笔记
- 自定义标签学习记录
- struts2标签学习
- jsp 自定义标签 学习
- html标签学习
- struts2标签学习笔记
- struts2标签学习笔记
- 自定义标签学习笔记
- RichFace标签学习
- 多标签学习
- 课堂总结之html常用标签分类
- RecyclerView的优化:RecycledViewPool
- Palindrome Number,LeetCode
- shell sed 使用
- Easy 102题 Binary Tree Level Order Traversal
- Struts2_19_OGNL标签学习
- Medium 107题 Binary Tree Level Order Traversal II
- 结构化与面向对象的需求分析与模型设计
- Android 中selector 的用法
- 浅谈html5布局中的overflow和display的用法
- 使用POI 读写 excel 文件(2003,2007)
- ubuntu14.04+GTX1080 部署tensorflow+cuda8.0
- Medium 173题 Binary Search Tree Iterator
- 信息传输完整性 MAC及其变体的简述与原理