Flask接口签名sign原理与实例代码浅析
271
2023-03-29
Struts2 OGNL表达式实例详解
Object Graph Navigation Language:对象图导航语言,就是用点来访问成员变量
例1:
struts.xml:
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 SUCCESS!!
结果显示:
OGNL SUCCESS!!
访问值栈中的action的普通属性1=jack
访问值栈中的action的普通属性2=111
[Debug]
ps:点击[Debug]可以查看到栈值中有username与password
例2:
struts.xml:
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属性
(只有你传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
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属性
结果页面:
cat-friend-name:
结果:
访问值栈中对象的普通属性(get set 方法 ):
cat-friend-name:littleBoy
观察[Debug],发现只有cat在值栈中,说明通过cat联系到dog,取得dog中的属性
访问cat方法:
结果页面:
cat-miaomiao:
结果:
访问值栈中对象的普通属性:
cat-miaomiao:miaomiao
访问action的普通方法:
结果页面:
action-m():
结果:
访问值栈中acion的普通方法:
action-m():Hello
总结
以上就是本文关于Struts2 OGNL表达式实例详解的全部内容,希望对大家有所帮助。有什么问题可以随时留言,欢迎大家交流讨论。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~