虽然现在使用struts1现在已经近乎销声匿迹,但是struts1的配置方法还是很有借鉴意义的,它揭露了一些底层的,数据传输的方法和构思,下面是我的一些总结 ,如果有错误或纰漏,欢迎指正。
1.创建web工程,把struts包引入工程。
2.编写login.jsp等所需要的jsp。
3.编写ActionFrom和Action。
4.编写struts-config.xml来配置前两个,并且关联他们。
5.配置web.xml文件ActionServlet的位置。
<form-beans>
<form-bean name="LoginForm"
type="com.baidu.form.LoginForm" />
</form-beans>
用来配置前台发过来的Form传给ActionForm用的,传到后台com.baidu.form.LoginForm这个方法会把所有的前台输入的东西拿到后台。
action-mappings
该元素用于将Action元素定义到ActionServlet类中,它含有0到多个<action/>
元素,其格式如下:
<action-mappings>
<action path="Action请求的相对路径,与页面<html:form>的Action属性值一致"
type="该Action的对应类的全路径"
name="该Action绑定的FormBean,与<form-bean >的Name属性值一致"
<forward name="与Action类中mapping.findForward("mapname")返回的mapname值一致" path="页面跳转的相对路径"/>
</action>
</action-mappings>
每个action子元素可包含一个或多个forward子元素。除了path、type和name属性外,action还具有如下属性:
scope:指定ActionForm Bean的作用域(session和request),缺省为session。(可选);
input:当Bean发生错误时返回的路径,在validate验证框架中错误显示的页面(可选);
classname:指定一个调用这个Action类的ActionMapping类的全名。缺省的话就会默认使用下面这个路径的包来使用org.apache.struts.action.ActionMapping(可选);
include:如果没有forward的时候,它起forward的作用(可选);
validate:若为true,则会调用ActionForm的validate()方法或调用validate验证,否则不调用,缺省为true(可选)。
forward属性也是可选的。
action元素定义举例如下:
有input属性的例子:
<p>
<action-mappings>
</p>
<p>
<action path="/userAction" type="com.amigo.struts.action.UserAction"
name="UserForm" scope="request" validate = "false" parameter="method" >
<forward name="error" path="/user/error.jsp" />
<forward name="success" path="/user/success.jsp"/>
<forward name="add" path="/user/addUser.jsp"/>
<forward name="update" path="/user/updateUser.jsp"/>
<forward name="list" path="/user/userList.jsp"/>
</action>
</action-mappings>
</p>
仅有JSP的action元素:
<action-mappings>
<action path="/calcAction"
type="com.amigo.struts.action.CalcAction"
name="CalcForm"
scope="request"
validate="true"
input="/index.jsp">
<forward name="success" path="/success.jsp"/>
<forward name="error" path="/error.jsp"/>
</action>
</action-mappings>
<global-forwards />
在struts-config.xml的文件中我们配置了许多的action,每一个action中都可以有多个forward,当页面发送请求后,
RequestProcessor会根据请求的URI到struts-config.xml中寻找相应的Action对象,Action对象会根据不同的条件得到