欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Struts 摘录1 StrutsJSPApacheXMLServlet 

程序员文章站 2022-05-29 22:47:53
...
Struts使用心得
在使用Struts时,发现一个Action只能有一个方法,那么我不可能每一个操作(比如:增加、删除、修改)都写一个Action那么怎么解决这个问题呢
在Struts1.1中有一个DispatchAction类,它位于org.apache.struts.actions中。那么如何使用一达到我上面的目的呢
答案就是你的每一个Action都集成这个类(DispatchAction)然后就可以自己写任何方法了比如下面这个例子,我要写一个增加记录的方法

import org.apache.struts.actions.*;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.fansoft.map.*;
import org.fansoft.util.*;
import org.fansoft.operation.OpPrinfo;
public class PrInfoAction extends DispatchAction {

/**
* 创建新的项目
*/
public ActionForward createPrject(ActionMapping mapping,
                              ActionForm form,
                              HttpServletRequest request,
                              HttpServletResponse response) throws
    Exception{
  PrmInfoForm prmInfoForm = (PrmInfoForm) form;
   OpPrinfo opp=new OpPrinfo();
   opp.setPrinfo(prmInfoForm);

   return mapping.findForward("inputit");
}

}
那么我怎么让Struts知道我的表示层要调用那个方法呢,需要【配置两个地方struts-config.xml和jsp文件:
struts-config.xml
  <action name="prmInfoForm"
  type="org.fansoft.manage.PrInfoAction"
  validate="true"
  scope="request"
  parameter="methed" //这一行传一个一个参数methed
  path="/prInfoAction">
<forward name="inputit" path="/prinfo_input.jsp"/>
</action>

jsp的form中增加下面一行:
<html:hidden property="methed" value="createPrject"/>
其中property的值对应struts-config.xml文件中parameter参数的值,value的值对应你的Action中方法名(这里时createPrject)
这样就表示你的这个表示层调用的时PrInfoAction类中的createPrject方法