struts的基本流程:
所以弄清上面每个过程配制文件是怎么配制的,struts就基本会用了。
先在web.xml中加入如下配制,可以参考servlet的配制过程
<!-- 标准ActionServlet(带调式) --> <servlet> <!-- 给ActionServlet启个名--> <servlet-name>action</servlet-name> <!-- 指定ActionServlet类--> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <!-- 指定config.xml文件位置--> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- 指定ActionServlet处理的url类型,servlet-name要和上面的对应--> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
配制struts-config.xml,上面ActionServlet指定的配制文件。
struts-config.xml的根为<struts-config>,所有的配制都要写在这里面。
<struts-config> <!--配制内容 --> </struts-config>
以下的配制没有说明,默认都是在<struts-config>中。
<form-beans> <!-- 一个ActionForm的例子--> <form-bean <!-- ActionForm的名字,以后引用时用--> name="inputForm" <!-- ActionForm类全路径--> type="app.InputForm"/> <!-- 动态ActionForm的例子,不用创建类,type都指向DynaActionForm --> <form-bean name="logonForm" type="org.apache.struts.action.DynaActionForm"> <!--Form的属性,和表单中的提交名对应--> <form-property name="username" type="java.lang.String"/> <form-property name="password" type="java.lang.String"/> </form-bean> </form-beans>
struts分发请求的配制。
<action-mappings> <!-- 最简单跳转 --> <action <!-- 对应url,web.xml中ActionServlet对应servlet-mapping配制*的部分 --> path="/Welcome" <!-- 要跳转到的页面 --> forward="/pages/Welcome.jsp"/> <!-- 用ForwardAction跳转 --> <action path="/Input" <!-- ForwardAction是struts中用来代替jsp中跳转功能的。 在struts中不建议用jsp的跳转可能,可能会出各种问题。 --> type="org.apache.struts.actions.ForwardAction" <!-- ForwardAction参数,要跳转到的页面 --> parameter="/pages/Input.jsp"/> <!-- 自定义Action --> <action path="/InputSubmit" <!-- Action类全路径 --> type="app.InputAction" <!-- Action类使用的ActionForm,form-beans中定义。 form-beans中对应form-bean的name。--> name="inputForm" <!-- 作用范围 --> scope="request" <!-- 是否验证 --> validate="true" <!-- 验证出错跳转到页面 --> input="/pages/Input.jsp"/> <!-- 正则匹配Action --> <action <!-- *匹配的部分为以后参数中的{1} --> path="/edit*" type="app.Edit{1}Action" name="inputForm" scope="request" validate="true" input="/pages/Edit{1}.jsp"/> <action path="/mh" type="app.MhAction" name="memoryForm" scope="request" validate="true" input="/login.jsp"> <!-- 根据Action返回name跳转 return (mapping.findForward("name")); --> <forward name="indexNoRight" path="/error/norighterror.jsp" /> <forward name="indexsj" path="/mhsj.jsp" /> <forward name="indexsj1" path="/mhsj_1.jsp" /> </action> </action-mappings>