Struts2 OGNL表达式
来源:互联网 发布:卓智网络西安平台 编辑:程序博客网 时间:2024/05/09 06:09
1、index.jsp
<body>访问属性<a href="ognl.action?username=u&password=p">ognl</a></body>
<struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /> <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant> <include file="/com/wxh/action/ognl.xml"/></struts>
3.ognl.xml
<struts><constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /><package name="ognl" extends="struts-default"><action name="ognl" class="com.wxh.action.OgnlAction"><result>/ognl.jsp</result></action><action name="test" class="com.wxh.action.TestAction"><result type="chain">ognl</result></action></package></struts>
4.ognl.jsp
<body><ol><li>访问值栈中的action的普通属性:username=<s:property value="username"/></li><li>访问值栈中的对象的普通属性(get set 方法):<s:property value="user.age"/>|</li><li>访问值栈中的对象的普通属性(get set 方法):<s:property value="cat.friend.name"/></li><li>访问值栈中的对象的普通方法:<s:property value="password.length()"/></li><li>访问值栈中的对象的普通方法:<s:property value="cat.miaomiao()"/></li><li>访问值栈中action的普通方法:<s:property value="m()"/></li><hr/><li>访问静态方法:<s:property value="@com.wxh.action.S@s()"/></li><li>访问静态属性:<s:property value="@com.wxh.action.S@STR"/></li><li>访问Math类的静态方法:<s:property value="@@max(2,3)"/></li><hr/><li>访问普通类的构造方法:<s:property value="new com.wxh.action.User(8)"/></li><hr/><li>访问List:<s:property value="users"/><li><li>访问List中某个元素:<s:property value="users{1}"/><li><li>访问List中元素某个属性的集合:<s:property value="users.{age}"/><li><li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}{0}"/>|<s:property value="users{0}.age"/><li><li>访问Set:<s:property value="dogs"/></li><li>访问Set中的某个元素:<s:property value="dogs{1}"/></li><li>访问Map:<s:property value="dogMap"/></li><li>访问Map中某个元素:<s:property value="dogMap.dog101"/>|<s:property value="dogMap['dog101']"/>|<s:property value="dogMap[\"dog101\"]"/></li><li>访问Map中所有的key:<s:property value="dogMap.keys"/></li><li>访问Map中所有的value:<s:property value="dogMap.values"/></li><li>访问容器的大小:<s:property value="dogMap.size()"/>|<s:property value="users.size"/></li><hr/><li>投影(过滤):<s:property value="users.{?#this.age==1}.{age}"/></li><li>投影:<s:property value="users.{^#this.age>1}.{age}"/></li><li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li><li>投影:<s:property value="users.{$#this.age>1}.{age}==null"/></li><hr/><li>[]:<s:property value="[0].username"/></li></ol><s:debug></s:debug></body>
5.OgnlAction.java
package com.wxh.action;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Set;import com.opensymphony.xwork2.ActionSupport;public class OgnlAction extends ActionSupport{/** * */private static final long serialVersionUID = 1L;private String password;private String username;private User user;private Cat cat;private List<User> users=new ArrayList<User>();private Set<Dog> dogs=new HashSet<Dog>();private Map<String,Dog> dogMap=new HashMap<String,Dog>();public OgnlAction(){users.add(new User(1));users.add(new User(2));users.add(new User(3));dogs.add(new Dog("dog1"));dogs.add(new Dog("dog2"));dogs.add(new Dog("dog3"));dogMap.put("dog100",new Dog("dog100"));dogMap.put("dog101",new Dog("dog101"));dogMap.put("dog102",new Dog("dog102"));}public List<User> getUsers() {return users;}public void setUsers(List<User> users) {this.users = users;}public Set<Dog> getDogs() {return dogs;}public void setDogs(Set<Dog> dogs) {this.dogs = dogs;}public Map<String, Dog> getDogMap() {return dogMap;}public void setDogMap(Map<String, Dog> dogMap) {this.dogMap = dogMap;}public String m(){return "hello";}public Cat getCat() {return cat;}public void setCat(Cat cat) {this.cat = cat;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String execute(){return SUCCESS;}}
6.Cat.java
package com.wxh.action;public class Cat {private Dog friend;public Dog getFriend() {return friend;}public void setFriend(Dog friend) {this.friend = friend;}public String miaomiao(){return "miaomiao";}}
7.Dog.java
package com.wxh.action;public class Dog {public Dog(){}public Dog(String anme){super();this.name=name;}private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public String toString(){return "dog:"+name;}}
8.S.java
package com.wxh.action;public class S {public static String STR="STATIC STRING";public static String s(){return "static method";}}
9.User.java
package com.wxh.action;public class User {private int age;public User(){System.out.println("user.constructor!");}public User(int age){super();this.age=age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String toString(){return "user"+age;}}
思考:在做一些实验的时候某些功能并没有展现。
1 0
- struts2的OGNL表达式
- struts2的OGNL表达式
- OGNL表达式struts2标签“%,#,$”
- struts2 OGNL表达式
- OGNL表达式struts2标签“%,#,$”
- Struts2中的OGNL表达式
- 再论 Struts2 OGNL表达式
- OGNL表达式struts2标签“%,#,$”
- OGNL表达式struts2标签“%,#,$”
- struts2 ognl 表达式
- OGNL表达式struts2标签“%,#,$”
- Struts2 OGNL表达式介绍
- Struts2 OGNL 表达式
- OGNL表达式struts2标签“%,#,$”
- struts2 OGNL表达式小记
- OGNL表达式struts2标签“%,#,$”
- OGNL表达式struts2标签“%,#,$”
- OGNL表达式struts2标签“%,#,$”
- mysql--存储引擎的特点
- django项目部署到SAE上的个人博客
- iOS核心动画之CoreAnimation
- android 系统笔记(1)
- iOS开发 自带二维码扫描(仅支持iOS7及以上系统)
- Struts2 OGNL表达式
- 如何反转一个单链表?
- Java 去掉字符串中的换行符回车符等
- 求字符串中的最小的子字符串长度
- rtabmap编译问题总结
- 解决maven项目中-Dmaven.multiModuleProjectDirectory报错问题
- Vert.x 3学习笔记---09
- 选择排序与堆排序
- centos7.0 阿里巴巴学生服务器搭配环境实录(2)--tomcat环境搭建