struts2 中用到的 设计模式之--适配器模式(adapter)

BaseAction.java

Java代码 复制代码
  1.   
  2. package cheng.controller;   
  3.   
  4. import javax.servlet.http.HttpServletRequest;   
  5. import javax.servlet.http.HttpServletResponse;   
  6.   
  7. import org.apache.struts2.interceptor.ServletRequestAware;   
  8. import org.apache.struts2.interceptor.ServletResponseAware;   
  9.   
  10. import com.opensymphony.xwork2.ActionSupport;   
  11. import com.opensymphony.xwork2.ModelDriven;   
  12. import com.opensymphony.xwork2.Preparable;   
  13. //隐藏目标接口的抽象适配器   
  14. @SuppressWarnings("all")   
  15. public abstract class BaseAction<T> extends ActionSupport implements  
  16.         ModelDriven<T>, Preparable, ServletRequestAware, ServletResponseAware {   
  17.   
  18.     public abstract T getModel();   
  19.   
  20.     public void prepare() throws Exception {   
  21.     }   
  22.   
  23.     public void setServletRequest(HttpServletRequest request) {   
  24.     }   
  25.   
  26.     public void setServletResponse(HttpServletResponse response){   
  27.     }   
  28.        
  29. }  
package cheng.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;
//隐藏目标接口的抽象适配器
@SuppressWarnings("all")
public abstract class BaseAction<T> extends ActionSupport implements
		ModelDriven<T>, Preparable, ServletRequestAware, ServletResponseAware {

	public abstract T getModel();

	public void prepare() throws Exception {
	}

	public void setServletRequest(HttpServletRequest request) {
	}

	public void setServletResponse(HttpServletResponse response){
	}
	
}



MoneyAction.java

Java代码 复制代码
  1.   
  2. package cheng.controller.money;   
  3.   
  4. import java.io.IOException;   
  5. import java.util.Map;   
  6.   
  7. import javax.servlet.http.HttpServletResponse;   
  8.   
  9. import net.sf.json.JSONObject;   
  10. import org.springframework.beans.factory.annotation.Autowired;   
  11. import org.springframework.beans.factory.annotation.Qualifier;   
  12. import org.springframework.stereotype.Controller;   
  13.   
  14. import com.opensymphony.xwork2.ActionContext;   
  15.   
  16. import cheng.controller.BaseAction;   
  17. import cheng.entity.Money;   
  18. import cheng.service.MoneyManager;   
  19.   
  20. @Controller  
  21. public class MoneyAction extends BaseAction<Money> {   
  22.     private static final long serialVersionUID = -6769263990506962430L;   
  23.     @Autowired  
  24.     @Qualifier("moneyManager")   
  25.     private MoneyManager moneyManager;   
  26.   
  27.     @Autowired  
  28.     private Money money;   
  29.   
  30.     @Override  
  31.     public Money getModel() {   
  32.         return money;   
  33.     }   
  34.   
  35.     private HttpServletResponse response;   
  36.   
  37.     public void setServletResponse(HttpServletResponse response) {   
  38.         this.response = response;   
  39.     }   
  40.   
  41.     @SuppressWarnings("unchecked")   
  42.     public String execute() throws IOException {   
  43.         System.out.println("invoked execute method!!response");   
  44.         Money money = getModel();   
  45.         String record = money.getType();   
  46.         if (null != record) {   
  47.             JSONObject jsonObject = JSONObject.fromObject(record);   
  48.             System.out.println(jsonObject.toString());   
  49.             response.setCharacterEncoding("UTF-8");   
  50.             response.setHeader("json", jsonObject.toString());   
  51.             response.flushBuffer();   
  52.             return "money";//go to money.jsp   
  53.                   }   
  54.         return "list";//go to list.jsp   
  55.     }  

你可能感兴趣的:(java,apache,设计模式,json,servlet)