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方法
在使用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方法