首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
structs2 投影的介绍
时间:
2014-12-10 16:24:44
阅读:
196
评论:
0
收藏:
0
[点我收藏+]
标签:
struts2
第一部分:代码
//前端
访问属性
//web.xml
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false">
<constant name="struts.devMode" value="true">
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<include file="/com/struts2/ognl/ognl.xml/">
</include></constant></constant></struts>
//ognl.xml
<struts>
<package extends="struts-default" name="ognl">
<result>/ognl.jsp</result>
</action>
<result type="chain">ognl</result>
</action>
</package>
</struts>
//类包
//ognl.java
package com.struts2.ognl;
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 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 String execute() {
return SUCCESS;
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public User getUser() {
return user;
}
public Cat getCat() {
return cat;
}
public List<user> getUsers() {
return users;
}
public Map<string, dog=""> getDogMap() {
return dogMap;
}
public Set<dog> getDogs() {
return dogs;
}
public String m() {
return hello;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public void setDogMap(Map<string, dog=""> dogMap) {
this.dogMap = dogMap;
}
public void setDogs(Set<dog> dogs) {
this.dogs = dogs;
}
public void setPassword(String password) {
this.password = password;
}
public void setUser(User user) {
this.user = user;
}
public void setUsername(String username) {
this.username = username;
}
public void setUsers(List<user> users) {
this.users = users;
}
}
//user.java
package com.struts2.ognl;
public class User {
private int age = 8;
public User() {
}
public User(int age) {
super();
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return user + age;
}
}</user></dog></string,></dog></string,></user></string,></string,></dog></dog></user></user>
//cat.java
package com.struts2.ognl;
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 com.struts2.ognl;
public class Cat {
private Dog friend;
public Dog getFriend() {
return friend;
}
public void setFriend(Dog friend) {
this.friend = friend;
}
public String miaomiao() {
return miaomiao;
}
}
?
1
//展示
访问值栈中的action的普通属性: username =
访问值栈中对象的普通属性(get set方法): | | | wrong: <%----%>
访问值栈中对象的普通属性(get set方法):
访问值栈中对象的普通方法:
访问值栈中对象的普通方法:
访问值栈中action的普通方法:
访问静态方法:
访问静态属性:
访问Math类的静态方法:
访问普通类的构造方法:
访问List:
访问List中某个元素:
访问List中元素某个属性的集合:
访问List中元素某个属性的集合中的特定值: |
访问Set:
访问Set中某个元素:
访问Map:
访问Map中某个元素: | |
访问Map中所有的key:
访问Map中所有的value:
访问容器的大小: |
投影(过滤):
投影:1}.{age}/>
投影:1}.{age}/>
投影:1}.{age} == null/>
[]:
第二部分:分析
-> 点击之后,根据配置文件里里面的配置,找到文件包含
-> 查找ognl.xml文件
<struts>
<package extends="struts-default" name="ognl">
<result>/ognl.jsp</result>
</action>
<result type="chain">ognl</result>
</action>
</package>
</struts>
-> 根据xml配置文件里面的action关联的类,构造类对象;
-> 根据ognl.java构造ognl对象;
-> 展示阶段进行取值显示,有几种访问方式需要注意:
-> 访问值栈中属性,值栈中对象的方法,静态方法,静态属性,容器对象;
访问值栈中的action的普通属性
值栈中对象的普通属性
值栈中对象的普通方法
值栈中action的普通方法
静态方法访问方式@类名@方法名
需要在web.xml中设置 value=true>
查看默认设置的方法:/Struts2_1900_OGNL / WebRoot / WEB-INF / lib / struts2-core-2.1.6.jar /default.properties
访问集合
-> 调用方法
?
1
http://localhost:8080/Struts2_1900_OGNL/ognl.action?username=u&password=p&user.age = 19&cat.friend.name =oudy
第三部分;讨论
Object Graph Navigation Language
对象图导航语言
第四部分:有关投影的讨论
投影即过滤功能。
过滤写法:
?
1
投影(过滤):
投影:1}.{age}/>
投影:1}.{age}/>
投影:1}.{age} == null/>
以? ^ $ 开头加上过滤条件,和正则表达式不相同;
this表示循环过程中的对象,帮助你做一些循环;
投影(过滤):
表示从从users中取出age=1的那一个,结果是一个集合;
投影(过滤):
表示从从users中取出age=1的第一个,结果是一个;
投影:1}.{age}/>
表示从从users中取出age>1的集合结尾的那一个;
structs2 投影的介绍
标签:
struts2
原文地址:http://blog.csdn.net/love_xsq/article/details/41846683
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!