Struts旅程(四)MVC向struts MVC框架演变过程(三)

2014-11-24 02:50:14 · 作者: · 浏览: 2
servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; public class AddUserActionimplements Action { @Override public String execute(HttpServletRequest request,HttpServletResponse response) throws Exception { String username = request.getParameter("username"); //Stringsex = request.getParameter("sex"); //........... //调用业务逻辑. UserManager userManager = new UserManager(); userManager.add(username); return"/add_success.jsp"; } }

DelUserAction代码。

package com.bjpowernode.servlet;
 
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
 
public class DelUserActionimplements Action {
 
                                               @Override
                                               public String execute(HttpServletRequest request,HttpServletResponse response) throws Exception {
                                                 String username = request.getParameter("username");
                                                 //String sex = request.getParameter("sex");
                                                 //...........
                                                 //调用业务逻辑.
                                                 UserManager userManager = new UserManager();
                                                 try
                                                 {
                                                        userManager.del(username);
                                                 }catch(Exceptione)
                                                 {
                                                        return"del_error.jsp";
                                                 }
                                                
                                                
                                                
                                                 return"/del_success.jsp";
                                                
                                                
                                               }
 
}
 


ModifyUserAction代码。

package com.bjpowernode.servlet;
 
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
 
public class ModifyUserActionimplements Action {
 
                                               @Override
                                               public String execute(HttpServletRequest request,HttpServletResponse response) throwsException {
                                                 String username = request.getParameter("username");
                                                 //String sex = request.getParameter("userId");
                                                 //...........等其他...
                                                
                                                 //调用业务逻辑.
                                                
                                                 UserManager userManager = new UserManager();
                                                 userManager.modify(username);
                                                
                                                 return"/modify_success.jsp";
                                                
                                                
                                               }
 
}
 


QueryUserAction代码。

package com.bjpowernode.servlet;
 
import java.util.List;
 
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
 
public class QueryUserActionimplements Action {
 
                                               @Override
                                               public String execute(HttpServletRequest request,HttpServletResponse response) throwsException {
                                                 String  username = request.getParameter("username");
                                                 //Stringsex = request.getParameter("userId");
                                                 //其他查询条件.
                                                 //...........等其他...
                                                
                                                 //调用业务逻辑.
                                                
                                                 UserManager userManager = new UserManager();
                                                 List userList = userManager.query(username);
                                                 request.setAttribute("userList",userList);
                                                
                                                 return"/query_success.jsp";//转向路径都可以通过配置文件读取。
                                                
                                                              
                                               }
 
}


这样使用多态方式调用不同的Action,转向代码如下所示。

//用多态的方式.
                                                 Action action = null;
                                                 if("/servlet/delUser".equals(path))
                                                 {
                                                        action= new DelUserAction();
                                                 }else if("/servlet/addUser".equals(path))
                                                 {
                                                        action= new AddUserAction();
                                                 }else if("/servlet/modifyUser".equals(path))
                                                 {
                                                        action= new ModifyUserAction();
                                                       
                                                 }else if("/servlet/queryUser".equals(path))
                                                 {
                                                        action= new QueryUserAction();
                                                              
                                                 }else
                                                 {
                                                        throw new RuntimeException("请求失败!");
                                                 }
                                                 //取得action后传递过去。动态调用ACtion中的execute方法。
                                                   String forward = null;
                                                 try{
                                                        forward= action.execute(request,response);
                                                 }catch (Exception e) {
                                                        e.printStackTrace();
                                                 }
                                                  
                                                   //根据路径完成转向。
                                                  request.getRequestDispatcher(forward).forward(request, response);
           


上述调用不同的action,我们可以把不同的请求和对应的action配置到自己的xml文件中。配置哪个请求对应哪个Action。

                                                  
  
                                                             
    
    
     /del_success.jsp
     
    
     /del_error.jsp
     
   
                                                   
                                                   
    
    
     /add_success.jsp
     
    
     /add_error.jsp
     
   
                                                   
                                                   
    
    
     /modify_success.jsp
     
    
     /modify_error.jsp
     
   
                                                   
                                                   
    
    
     /query_succ