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!!

  1. 访问值栈中的action的普通属性1=
  2. 访问值栈中的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!!

  1. 访问值栈中对象的普通属性(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表达式实例详解的全部内容,希望对大家有所帮助。有什么问题可以随时留言,欢迎大家交流讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值