Struts 2 学习笔记2

 
对象视图导航语言: OGNL 的应用
<%@ taglib prefix="s" uri="/struts-tags" %>   引用structs中的tags标签


定义一个Action,要生成所有属性(成员,实体)的get和set方法:

public class LoginAction {
    
	private String name;
	private String pass;
	private int age;
	private Person person;
	private List<Person> persons;
	private String url;
	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String check(){
	  persons = new ArrayList<Person>();
	  person = new Person("nima1",11);
	  Person p1 = new Person("nima2",15);
	  Person p2 = new Person("nima3",20);
	  persons.add(person);
	  persons.add(p1);
	  persons.add(p2);
		return "success";
	
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPass() {
		return pass;
	}
	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Person getPerson() {
		return person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}

	public List<Person> getPersons() {
		return persons;
	}

	public void setPersons(List<Person> persons) {
		this.persons = persons;
	}

	public void setPass(String pass) {
		this.pass = pass;
	}
	
}


定义一个person 实体:

public class Person {
   
	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;
	}
	
	public Person(String name,int age){
		this.age = age;
		this.name = name;
	}
}


在struts的配置文件中调用action中的方法,以下是成功跳转到页面过后对数据的条件显示和普通显示

<s:debug></s:debug>
		获取action普通属性:
		<s:property value="name" />
		</br>
		获取action成员实体属性:
		<s:property value="person.name" />
		</br>
		迭代集合:
		<s:iterator value="persons" var="p">
			<s:property value="#p.name" />
			</br>
		</s:iterator>
		条件迭代:满足条件的所有记录
		<s:iterator value="persons.{?#this.age>11}" var="p">
			<s:property value="#p.name" />
			</br>
		</s:iterator>

		条件迭代:满足条件的最后一个
		<s:iterator value="persons.{$#this.age>11}" var="p">
			<s:property value="#p.name" />
			</br>
		</s:iterator>

		条件迭代:满足条件的第一个
		<s:iterator value="persons.{^#this.age>11}" var="p">
			<s:property value="#p.name" />
			</br>
		</s:iterator>


其中 条件迭代和迭代中 属性前要加 “#” 当条件迭代时  ?# 表示满足条件的所有情况,  $# 表示最后一个满足条件的  ^# 表示第一个满足条件的

 

 

 

		调用action中的方法
		<s:property value="meth()"/></br>
		
		调用action中的成员属性中的方法
		<s:property value="person.eat()"/></br>
		
		调用action中的成员属性的方法
		<s:property value="persons.size()"/><!-- persons的大小 -->
		<s:property value="name.length()"/></br>
		
		获取普通对象的静态属性:
		<s:property value="@com.bruce.entity.Cat@name"/></br>
		
		获取普通对象的静态方法:
		<s:property value="@com.bruce.entity.Cat@meth()"/></br>
		<!-- 
		       需要在struts.xml中加上
		 <constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
		 -->	
		action成员对象中的普通属性:
		<s:property value="person.cat.names"/>


 action调用函数:

<s:property value="@@max(10,20)"/>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值