Struts2 OGNL表达式实例详解

网友投稿 271 2023-03-29


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

结果显示:

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才能构造)

结果页面:

<%@taglib uri="/struts-tags" prefix="s" %>

OGNL SUCCESS!!


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

结果页面:


cat-friend-name:

结果:

访问值栈中对象的普通属性(get set 方法 ):

cat-friend-name:littleBoy

观察[Debug],发现只有cat在值栈中,说明通过cat联系到dog,取得dog中的属性

访问cat方法:

OGNL4

结果页面:


cat-miaomiao:

结果:

访问值栈中对象的普通属性:

cat-miaomiao:miaomiao

访问action的普通方法:

OGNL5

结果页面:


action-m():

结果:

访问值栈中acion的普通方法:

action-m():Hello

总结

以上就是本文关于Struts2 OGNL表达式实例详解的全部内容,希望对大家有所帮助。有什么问题可以随时留言,欢迎大家交流讨论。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:EasyUI Tree树组件无限循环的解决方法
下一篇:Hibernate实现悲观锁和乐观锁代码介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~