《深入浅出struts2》--第十章 ModelDriven拦截器

一,书上知识点

    《深入浅出struts2》--第十章 ModelDriven拦截器_第1张图片

       《深入浅出struts2》--第十章 ModelDriven拦截器_第2张图片《深入浅出struts2》--第十章 ModelDriven拦截器_第3张图片

特别注意:上面蓝色表示。

一,案例

《深入浅出struts2》--第十章 ModelDriven拦截器_第4张图片

web.xml



  	
  
    index.jsp
  
  
  	
  		app05a.ApplicationListener
  	
  
  
     struts2
     	
     	    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
     		
  
  
      struts2
      /*
   



struts.xml




	  
	
		
		
	    	
			
				
				
			
		
		
			/jsp/Employee.jsp
		
		
			Employee_list
			/jsp/Employee.jsp
		
	
EmployeeAction.java动作类

package app09;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class EmployeeAction extends ActionSupport implements ModelDriven{
	private Employee employee;
	private List employees;
	public Employee getEmployee() {
		return employee;
	}
	public void setEmployee(Employee employee) {
		this.employee = employee;
	}
	public List getEmployees() {
		employees=EmployeeManager.getEmployees();
		return employees;
	}
	public void setEmployees(List employees) {
		this.employees = employees;
	}
	@Override
	public Object getModel() {
		employee=new Employee();
		return employee;
	}
	
	public String list(){
		employees=EmployeeManager.getEmployees();
		return SUCCESS;
	}
	
	public String create(){
		EmployeeManager.create(employee);
		return SUCCESS;
	}
}
模型类Employee.java,这里充当数据传输对象DTO

package app09;

public class Employee {
	private int id;
	private String firstName;
	private String lastName;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	public Employee() {
		super();
	}
	public Employee(int id, String firstName, String lastName) {
		super();
		this.id = id;
		this.firstName = firstName;
		this.lastName = lastName;
	}
	
}
业务逻辑层,这里用的是一个类EmployeeManager.java代替,通常进行数据的读/写
package app09;

import java.util.ArrayList;
import java.util.List;

public class EmployeeManager {
	private static List employees;
	public static int id;
	static{
		employees=new ArrayList();
		employees.add(new Employee(++id,"f1","l1"));
		employees.add(new Employee(++id,"f2","l2"));
		employees.add(new Employee(++id,"f3","l3"));
		employees.add(new Employee(++id,"f4","l4"));
	}
	public static List getEmployees() {
		return employees;
	}
	public static void create(Employee employee){
		employee.setId(++id);
		employees.add(employee);
	}
	
}
试图层Employee.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'Employee.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    

Add New Employee


    
动作Employee_create的验证文件,保证保存的对象的firstName和lastName属性不为空

EmployeeAction-Employee_create-validation.xml


 

	
		
			not empty
		
	
	
		
			also not empty
		
	

这个案例中有个主意事项:

《深入浅出struts2》--第十章 ModelDriven拦截器_第5张图片


你可能感兴趣的:(struts2)