java ognl表达式 与struts2标签_Struts2 OGNL表达式实例详解
Object Graph Navigation Language:对象图导航语言,就是用点来访问成员变量
例1:
struts.xml:
/ognl.jsp
OgnlAction1.java:
package cn.edu.hpu.action;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction1 extends ActionSupport{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
}
}
访问链接:
OGNL
结果界面:
OGNL SUCCESS!!
- 访问值栈中的action的普通属性1=
- 访问值栈中的action的普通属性2=
结果显示:
OGNL SUCCESS!!
访问值栈中的action的普通属性1=jack
访问值栈中的action的普通属性2=111
[Debug]
ps:点击[Debug]可以查看到栈值中有username与password
例2:
struts.xml:
/ognl.jsp
UserAction2.java:
package cn.edu.hpu.action;
import cn.edu.hpu.mode.User;
public class UserAction2 {
private User user;
public String add(){
System.out.println("name="+user.getName());
System.out.println("age="+user.getAge());
return "success";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
User.java:
package cn.edu.hpu.mode;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
链接:
访问User属性
OGNL2
(只有你传user.XXXX才能构造)
结果页面:
My JSP 'ognl.jsp' starting page
OGNL SUCCESS!!
- 访问值栈中对象的普通属性(get set 方法 ):
user-age:|
显示结果:
OGNL SUCCESS!!
访问值栈中对象的普通属性(get set 方法 ):
user-age:21|21
[Debug]
点击[Debug]可以查看到栈值中有user对象的存在
例3:
struts.xml
/ognl.jsp
OgnlAction2.java:
package cn.edu.hpu.ognl;
import cn.edu.hpu.mode.Cat;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction2 extends ActionSupport{
private Cat cat;
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public String execute(){
return "success";
}
public String m(){
return "Hello";
}
}
Cat.java:
package cn.edu.hpu.mode;
public class Cat {
private Dog friend;
public Dog getFriend() {
return friend;
}
public void setFriend(Dog friend) {
this.friend = friend;
}
public String miaomiao(){
return "miaomiao";
}
}
Dog.java:
package cn.edu.hpu.mode;
public class Dog {
private String name;
public Dog(){
}
public Dog(String name){
super();
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "dog:"+name;
}
}
链接:
访问Cat属性
OGNL3
结果页面:
访问值栈中对象的普通属性(get set 方法 ):
cat-friend-name:
结果:
访问值栈中对象的普通属性(get set 方法 ):
cat-friend-name:littleBoy
观察[Debug],发现只有cat在值栈中,说明通过cat联系到dog,取得dog中的属性
访问cat方法:
OGNL4
结果页面:
访问值栈中对象的普通方法:
cat-miaomiao:
结果:
访问值栈中对象的普通属性:
cat-miaomiao:miaomiao
访问action的普通方法:
OGNL5
结果页面:
访问值栈中action的普通方法:
action-m():
结果:
访问值栈中acion的普通方法:
action-m():Hello
总结
以上就是本文关于Struts2 OGNL表达式实例详解的全部内容,希望对大家有所帮助。有什么问题可以随时留言,欢迎大家交流讨论。
java ognl表达式 与struts2标签_Struts2 OGNL表达式实例详解相关推荐
- java显示参数,Java中的隐式参数和显示参数实例详解
在学习java的过程中,我们会遇到许多的问题.下面我们就来看看什么是隐式参数和显示参数. 显式参数,就是平时见到的在方法名括号中间的参数,就是所谓能看得见的参数www.cppcns.com. 隐式参数 ...
- java的websocket_java 实现websocket的两种方式实例详解
一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring与we ...
- java打印菱形图案_java打印出菱形图案实例详解
第一步:首先对图像进行解析 想要打印该图形必须要进行多层循环嵌套,分两个部分进行打印. 第一部分为上半部分前四行,他们是递增的关系,后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环.并且由 ...
- websocket java 例子_java 实现websocket的两种方式实例详解
目录 一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring ...
- java多态讲解例子_Java多态性定义与用法实例详解
本文实例讲述了Java多态性定义与用法.分享给大家供大家参考,具体如下: 多态性是通过: 1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的 2 父类和继承父类并覆盖父类中同一方法的几个不同子类 ...
- java 工厂 单例_java 单例模式和工厂模式实例详解
单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例. 私有的构造方法 指向自己实例的私有静态引用 以自己实例为返回值的静态的公有的方法 饿汉式单例 public class ...
- java 画弧线,利用Android画圆弧canvas.drawArc()实例详解
前言 在学习android中图形图像处理技术这部分内容时,对绘制圆弧函数canvas.drawArc()的用法.参数含义及画图原理很是不理解,在网上搜索了一些,加上自己的理解,在此做个小总结,下面来一 ...
- java web初始化实例_Struts2中实现web应用的初始化实例详解
Struts2中实现web应用的初始化实例详解 在JavsSE中,main方法为应用提供了入口,而在Android中,我们可以使用Application对于整个应用的生命周期进行管理,那么在基于Str ...
- WEB后台--邮件和短信业务实现(包括Java一键实现、封装和异步)以及原理详解
本来就打算针对一些固定的特别点的业务(QQ与网易邮件.拦截设计.短信.定时器等等)来进行记录以及解析原理,这些会比较零散记录在JavaWeb的分类里面,感兴趣的童鞋可以去看下. 有人问为什么要邮件短信 ...
最新文章
- [翻译]ASP.NET MVC 3 开发的20个秘诀(十二)[20 Recipes for Programming MVC 3]:缩放图片尺寸创建缩略图...
- 基于用户投票的排名算法(一):Delicious和Hacker
- 【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )
- html如何禁止用户缩放,html如何禁止页面缩放
- java socket 工具_java Socket简易聊天工具
- python dll load failed_python安装MySQLdb的问题 ImportError: DLL load failed
- Opencv之python使用zxing识别二维码
- 设计模式(三)结构型模式
- 区块链开发(一)搭建基于以太坊go-ethereum的私有链环境
- weka软件使用问题解决(一)
- php deprecated,PHP Deprecated: Function eregi() is deprecated解决方法
- quickchm乱码问题
- 将军赶路不追小兔—看完纪录片《百万富豪谷底翻身》
- mysql黑盒测试_黑盒测试记录二
- jQuery搜索高亮显示
- TP-link WR720N路由器刷入OpenWrt
- 微信小程序苹果iOS长按图片无法转发、发送给朋友、保存,它们无效的解决办法
- 最新深信服面试笔试题
- 微习惯瘦身,一天一个俯卧撑就够了吗?
- Windows+CentOS 7双系统(最完全攻略!!)-------囊括所有安装CentOS双系统的问题!