Strus2_OGNL表达式

来源:互联网 发布:网络剧的受众分析 编辑:程序博客网 时间:2024/06/01 09:14
<?xml version="1.0" encoding="GB18030" ?><%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%><%@ taglib uri="/struts-tags" prefix="s" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030" /><title>OGNL表达式语言学习</title></head><body><ol><span style="white-space:pre"></span><li>访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
<span style="white-space:pre"></span><li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<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.bjsxt.struts2.ognl.S@s()"/></li><li>访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li><li>访问Math类的静态方法:<s:property value="@@max(2,3)" /></li><hr /><li>访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.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}[0]"/></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></html>
</pre><pre name="code" class="html"><span style="color:#ff0000;background-color: rgb(51, 204, 0);">下面为对应的action以及类的内容:</span>
<pre name="code" class="java">package com.bjsxt.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 Cat cat;private Map<String, Dog> dogMap = new HashMap<String, Dog>();private Set<Dog> dogs = new HashSet<Dog>();private String password;private User user;private String username;private List<User> users = new ArrayList<User>();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 Cat getCat() {return cat;}public Map<String, Dog> getDogMap() {return dogMap;}public Set<Dog> getDogs() {return dogs;}public String getPassword() {return password;}public User getUser() {return user;}public String getUsername() {return username;}public List<User> getUsers() {return users;}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;}}

package com.bjsxt.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";
}
}
package com.bjsxt.struts2.ognl;public class Dog {<span style="white-space:pre"></span><span style="white-space:pre"></span>private String name;<span style="white-space:pre"></span><span style="white-space:pre"></span>public Dog() {<span style="white-space:pre"></span><span style="white-space:pre"></span>}<span style="white-space:pre"></span>public Dog(String name) {<span style="white-space:pre"></span>super();<span style="white-space:pre"></span>this.name = name;<span style="white-space:pre"></span>}<span style="white-space:pre"></span><span style="white-space:pre"></span>public String getName() {<span style="white-space:pre"></span>return name;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>public void setName(String name) {<span style="white-space:pre"></span>this.name = name;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public String toString() {<span style="white-space:pre"></span>return "dog: " + name;<span style="white-space:pre"></span>}}
<span style="color:#ff0000;background-color: rgb(51, 204, 0);">下面是struts.xml的配置:</span>
<span style="background-color: rgb(51, 204, 0);"></span><pre name="code" class="html"><?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"        "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <package name="ognl" extends="struts-default">        <action name="ognl" class="com.bjsxt.struts2.ognl.OgnlAction">            <result>/ognl.jsp</result>        </action>        <action name="test" class="com.bjsxt.struts2.ognl.TestAction">            <result type="chain">ognl</result>        </action>    </package></struts>



</pre><pre name="code" class="html">

0 0
原创粉丝点击