MappingDispatchAction

org.apache.struts.actions.MappingDispatchAction继承org.apache.struts.actions.DispatchAction,用DispatchAction相对于

action是比较方便的很多,不过那写方法要自己去写才知道要找那个方法

如:loingAction.do?action=insert,而如果用的是MappingDispatchAction则不用这么明显的标识只要在struts-config.xml配置即可如下面的配置,下面的action是继承MappingDispatchAction

<action path="/loginMappingAction" type="com.hs.userManager.web.action.LoginAction" name="loginForm"
validate="true"  parameter="checkUser"> ,
而在DispatchAction中怎是配置请求action的标识是程序知道该调用DispatchAction中那个方法如

下面这个是继承DispatchAction

action path="/loginAction" type="com.hs.userManager.web.action.LoginAction" name="loginForm"
validate="true"  parameter="action"> 此处的parameter的名字可以随意取


虽然配置都是一样的但是请求确实不一样,下面看它们的请求有什么不同

建设是一个登录界面:



MappingDispatchAction的请求是这样的

loginMappingAction.do,而这样请求怎是会找到MappingDispatchAction中的checkUser方法(根据parameter="checkUser"这个属性)

checkUser方法如下:

package com.hs.userManager.web.action;

import java.util.List;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.MappingDispatchAction;

import com.hs.HourseManager.service.imp.HourseInfoService;
import com.hs.pojo.MutilPojoBean;

public class InitHourseByIdAction extends MappingDispatchAction {

public ActionForward  checkUser(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {

  /*

  *  这里是你具体怎样处理的逻辑,一般是调用服务层的方法

  *

  */

  return mapping.findForward("");  }
}



而如果是DispatchAction则需要这样写才可以请求到自己想要的方法如下:

loginAction.do?action=checkUse这样才可以请求到action中的相应的方法

checkUser方法如下,和MappingDispatchAction差不多:



package com.hs.userManager.web.action;

import java.util.List;

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

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

import com.hs.HourseManager.service.imp.HourseInfoService;
import com.hs.pojo.MutilPojoBean;

public class InitHourseByIdAction extends DispatchAction {

public ActionForward  checkUser(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {

  /*

  *  这里是你具体怎样处理的逻辑,一般是调用服务层的方法

  *

  */

  return mapping.findForward("");  }
}



这样一比较起来我个人觉得是MappingDispatchAction比较好用一些,MappingDispatchAction还有一些和标签一起使用的

不过struts1.x的标签很烂,所以我就没有加入标签了!

你可能感兴趣的:(apache,Web,xml,struts,servlet)