struts2对象图像导航语言(OGNL
![struts2对象图像导航语言(OGNL) struts2对象图像导航语言(OGNL)]()
注:ognl可以在action中创建对象cat传递参数,这个对象1中的参数可以是对象dog。那么在传递参数时使用 cat.dog.name=“tom”使用struts标签获取参数是 <s:property value=”cat.dog.name”/>
一。两个对象关联的实例
1.包com.ru.domain里面的两个对象。
dog.java
public class Dog { 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; } }
cat.java
public class Cat { private Dog dog;//属性是dog对象
public Dog getDog() { return dog; }
public void setDog(Dog dog) { this.dog = dog; } }
2.ognlActon.java使用cat对象接收参数。
public class ognl extends ActionSupport implements SessionAware { //获取传递的参数 private Cat cat;
public Cat getCat() { return cat; } public void setCat(Cat cat) { this.cat = cat; } //session private Map<String, Object> session;
@Override public String execute() throws Exception { return “ognl1″; } public void setSession(Map<String, Object> session) { // TODO Auto-generated method stub this.session=session; } } 3.login.jsp传递参数
<body> <form action=”ognl1?user” method=”post”> 用户名:<input type=”text” name=”cat.dog.name”/><br/>//传递的参数名 密 码:<input type=”password” name=”cat.dog.age”/><br/> <input type=”submit” value=”登录”/><br/> </form> </body>
4.ognl1.jsp接收参数
//引入标签
<%@taglib uri=”/struts-tags” prefix=”s”%>
<body> <h2>ognl第一个页面</h2> 这是对值栈的访问用户名: <s:property value=”cat.dog.name”/> <s:debug/> </body>
二。使用对象的普通方法
第一个实例
1.ognl.java
//使用属性获取参数,必须有set和get方法
private String password;
public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }
2.ognl.jsp
//使用字符串的length方法
<s:property value=”password.length()”/>
第二个事例
1.ognl.java
//使用对象获取传递的参数 private Cat cat; public Cat getCat() { return cat; } public void setCat(Cat cat) { this.cat = cat; }
2.Cat.java
public class Cat { private Dog dog; public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; }
//这里有一个方法,可以在jsp中直接调用函数 public String voice(){ return “miao”; } }
3.ognl.jsp
<s:property value=”cat.voice()”/>
三.访问静态方法和变量
要访问静态方法必须在sruts.xml中配置
<constant name=”struts.ognl.allowStaticMethodAccess” value=”true”></constant>
否则无法访问
注:访问静态方法时,可以在jsp页面直接获取参数,
1.staticclass.java
public class staticclass { public static String name=”如”; public static String test(){ return “这是一个静态方法”; } } 2.ognl.jsp
//访问时格式:@类路径@静态变量/静态方法
静态变量:<s:property value=”@com.ru.domain.staticclass@name“/><br>
静态变量:<s:property value=”@com.ru.domain.staticclass@test()”/><br
四.访问集合和投影
![struts2对象图像导航语言(OGNL) struts2对象图像导航语言(OGNL)]()
http://blog.sina.com.cn/s/articlelist_2540587351_0_1.html