Java Struts2 OGNL表达式简单使用和理解

OGNL(Object-Graph Navigation Language)是一个功能强大的表达式语言,用来获取和设置Java对象的属性。

如下例子:

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>


   
    login
    
  
  
    

result.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>


      
    OGNL-练习
	
  
  
  
  	

前台表单输入的值

4.2.1 OGNL普通方法访问

调用值栈对象中的普通方法1-user.helloworld():

调用值栈对象中的普通方法2-user.name.length():

调用LoginAction中的普通方法-test():

4.2.2 OGNL静态方法访问

调用LoginAction中的静态方法[email protected]@getSta():

调用LoginAction中的静态方法2-@vs@getSta():

4.2.3 OGNL默认类Math的访问

调用Math类中的静态方法[email protected]@min(1,2):

调用Math类中的静态方法2-@@min(1,2):

调用Math类中的字段-@@PI:

4.2.4 OGNL调用普通类的构造方法

调用Student普通类的构造方法-new top.k10000.Student('zhiquan','23','95.5'):

调用Student普通类的构造方法并访问name字段-new top.k10000.Student('zhiquan','23','95.5').name:

4.2.5 OGNL集合对象

获取List:

获取List中的第一个元素:

获取Set:

获取Set中的第一个元素(Set无序,不能取到):

获取Map:

获取Map中的key=m1的元素的值:方法一:方法二:

获取List的大小:|

获取Map中所有的键:

获取Map中所有的值:

4.2.6 OGNL中top用法

N语法[0]:

N语法[1]:

N语法[0].top:

N语法[1].top:

N语法top:

N语法取值:

N语法取值:

web.xml

  
  
     
    
    login.jsp  
    
    
    struts2  
      
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
      
    
    
    struts2  
    /*  
   

struts.xml




	  
      
     
     
		
		
			/result.jsp
		
	


User.java

package top.k10000;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class User {
	private String name;
	private String pass;
	private int age;
	private Date create_at;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass;
	}
	public int getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = Integer.parseInt(age);
	}
	public Date getCreate_at() {
		return create_at;
	}
	public void setCreate_at(String create_at) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			this.create_at = sdf.parse(create_at);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
	
	public String helloworld(){
		return "helloworld!";
		
	}
	
}

Student.java

package top.k10000;

public class Student {
	private String name;
	private int age;
	private double score;
	
	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 double getScore() {
		return score;
	}
	public void setScore(double score) {
		this.score = score;
	}
	
	public Student(String name,int age,double score){
		this.name = name;
		this.age = age;
		this.score = score;
	}
	
	
}

LoginAction.java

package top.k10000;
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 top.k10000.User;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
	private User user;
	private List myList = new ArrayList();
	private Set mySet = new HashSet();
	private Map myMap = new HashMap();
	
	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	
	public List getMyList() {
		return myList;
	}

	public void setMyList(List myList) {
		this.myList = myList;
	}

	public Set getMySet() {
		return mySet;
	}

	public void setMySet(Set mySet) {
		this.mySet = mySet;
	}

	public Map getMyMap() {
		return myMap;
	}

	public void setMyMap(Map myMap) {
		this.myMap = myMap;
	}

	public String test(){
		return "这是test方法的返回值";
	}
	
	public static String getSta(){
		return "这是getSta静态方法的返回值";
	}
	
	public String execute(){
		myList.add("list1");
		myList.add("list2");
		myList.add("list3");
		mySet.add("set1");
		mySet.add("set2");
		mySet.add("set3");
		myMap.put("m1","map1");
		myMap.put("m2","map2");
		myMap.put("m3","map3");
		return "success";
	}
}

Java Struts2 OGNL表达式简单使用和理解_第1张图片


Java Struts2 OGNL表达式简单使用和理解_第2张图片

Java Struts2 OGNL表达式简单使用和理解_第3张图片

你可能感兴趣的:(Java,#,SSH古董框架)