struts工程建立配置细节
ActionForm
ActionForm是用于存放表单提交的数据。
1.一个action是否必须配置一个actionForm,可以没有
2.一个action是否可以配置多个表单?不可以,最多一个
在jsp页面表单提交后调用某个action(此action又与一个ActionForm相关联),表单中的数据就会放在ActionForm中。
public class UserForm extends ActionForm
定义属性(这里有一个规范,我们定义属性名字的时候,应该和jsp页面控件的名称一样)
表单的属性名字是否和控件名是否一致?
不一定,只要保证set和get方法与属性名存在关联:setXxxx getXxxx Xxxx表示jsp控件的名称,首字母要大写
还有要注意action的路径(/web应用名/action path.do)
<form action="/Strutslogin/login.do" method="post">
struts-config.xml文件的配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE RootElement PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "struts-config_1_3.dtd"> 3 <struts-config> 4 <!--配置表单 --> 5 <form-beans> 6 <!--name是表单的名字,可以随意定义,建议取名规范表单类名小写 --> 7 <!-- type用于指定表单类的全路径 --> 8 <form-bean name="UserForm" type="com.xidian.forms.UserForm"></form-bean> 9 </form-beans> 10 <!-- 配置action --> 11 <action-mappings> 12 <!-- 配置具体的一个action path:表示将来访问该action的资源名,http://localhost:8080/web应用/path? --> 13 <!-- name:用于关联某个表单 --> 14 <!-- type用于指定action类的全路径 --> 15 <!--scope="request" 表示action对应的表单对象的生命周期是request级别的 总控制器相当于request.setAttribute("UserForm",UserForm);--> 16 <!--scope="session" 表示action对应的表单对象的生命周期是session级别的 总控制器相当于request.getSession().setAttribute("UserForm",UserForm);--> 17 <!-- 默认为session状态 --> 18 <action path="/login" name="UserForm" scope="request" type="com.xidian.action.LoginAction"> 19 <!-- 这里配置跳转关系 --> 20 <!-- name表示结果名称 path:转发到哪个页面 --> 21 <forward name="ok" path="/wel.jsp"></forward> 22 <forward name="err" path="/err.jsp"></forward> 23 </action> 24 </action-mappings> 25 </struts-config>