Posted on 2007-12-08 10:49
探佚 阅读(339)
评论(0) 编辑 收藏 所属分类:
Java EE技术
回顾 org.apache.struts.action.Action 类
<action
name="accountForm"
path="/account"
scope="request"
type="com.action.AccountAction">
<forward name="ok" path="/ok.jsp" redirect="true"/>
<forward name="error" path="/error.jsp"/>
</action>
com.action.AccountAction中的execute()方法会来处理来自account.do的请求
问题:
在JSP中,充当控制层的Servlet我们一般只用来处理一个表单请求,为了能处理不同请求,
我们可以通过判断提交按钮submit来判断不同请求,当然还可以通过重写URL、Hidden等来实现。
而现在我们的Action该怎样来完成这样的要求呢?
不用担心,DispatchAction替我们做好了。
使用步骤:
一、创建Action继承自DispatchAction类,
DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法.
二、编写自己的方法,拿增删改查举例
方法的声明,必须和exectue()方法声明一样,只是方法名不同。
public ActionForward add(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.findForward("ok");
}
public ActionForward edit(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.findForward("ok");
}
public ActionForward del(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
return mapping.findForward("ok");
}
三、struts-config.xml中配置
<action
name="accountForm"
parameter="operator"
path="/account"
scope="request"
type="com.action.AccountAction">
<forward name="ok" path="/ok.jsp" redirect="true"/>
<forward name="error" path="/error.jsp"/>
</action>
和普通Action的唯一区别就是添加一个属性parameter
其值用来保存传递给Action的不同请求。
operator=add时:DispatchAction会自动调用add()方法来处理请求,edit、del同理。
四、最后要做的和JSP中很像,在请求DispatchAction时把Parameter传递过去,
其途径无非是上面说到的Hidden,URL重写等手段.