Struts 2 間接實現零配置

所謂間接實現零配置,是指只要做些初始化的配置之後,在以後的開發中基本上不用再對每個Action做配置

struts.xml這樣配置

代碼
  1. <action name="*/*" method="{2}" class="workbench.web.actions.{1}Action">  
  2.    <result name="custom">/view/{1}/${target}.jsp</result>  
  3. </action>  
<script>render_code();</script>

 

struts.properties的配置:

代碼
  1. struts.objectFactory = spring   
  2. struts.objectFactory.spring.autoWire = name   
  3. struts.devMode = true  
  4. struts.enable.DynamicMethodInvocation = false  
  5. struts.action.extension =    
  6. struts.enable.SlashesInActionNames = true  
<script>render_code();</script>

 

然後寫一個BaseAction:

代碼
  1. public abstract class BaseAction {   
  2.     protected final String CUSTOM = "custom";   
  3.     private String target;   
  4.     protected final Log logger = LogFactory.getLog(getClass());   
  5.     public String getTarget() {   
  6.         return target;   
  7.     }   
  8.     public void setTarget(String target) {   
  9.         this.target = target;   
  10.     }   
  11.        
  12.     protected String render(String _target){   
  13.         setTarget(_target);   
  14.         return CUSTOM;   
  15.     }   
  16. }  
<script>render_code();</script>

 

這樣其餘的Action都可以直接繼承BaseAction,不用再做任何配置
通過return render(target)轉發到指定的jsp頁面,從而間接實現零配置

 

代碼
  1. public class UserAction extends BaseAction{   
  2.     private User user;   
  3.     private UserService userService;   
  4.     public void setUserService(UserService userService) {   
  5.         this.userService = userService;   
  6.     }   
  7.        
  8.     public User getUser() {   
  9.         return user;   
  10.     }   
  11.     public void setUser(User user) {   
  12.         this.user = user;   
  13.     }   
  14.     public String test(){   
  15.         user = userService.get(1l);   
  16.         return render("test");   
  17.     }   
  18. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章