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>