一、基本模板
1、Web.xml配置文件的内容及作用
//ActionServlet默认加载WEB-INF 下的struts-config.xml文件。如果需要Struts 的配
//置文件不在WEB-INF路径下,或者改变了文件名,则应采用如下方式配置:
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
//处理的servlet拦截格式
<servlet-mapping>
<!一配置ActionServlet的URL 映射一〉
<servlet-name>actionSevlet</servlet-name>
<!一所有以.do 结尾的请求由ActionServlet拦截>
<url-pattern>*.do</url-pattern>
//配置主控制器ActionSetvlet 应增加如下片段:
<servlet>
<!一指定Servlet 的名字一〉
<servlet-name>actionSevlet</servlet-name>
<' 指定该Servlet 的实现类-->
<servlet-class>org.apache.struts.action.ActionServlet<Iservlet-class>
<!- 配置自启动的级别一〉
<load-on-startup>2</load-on-startup>
</servlet>
2、struts-config.xml配置文件的内容及作用
//配置文件的根元素
<struts-config>
</struts-config>
//
<action-mappings>
<action
path="/register"
type="cn.itcast.web.struts1.action.RegisterAction" >
</action>
</action-mappings>
// Action 的path 属性:(用户请求的路径,/表示当前web工程应用,无需写.do)
// type属性:(该请求由哪个分控制器处理)
3、JSP页面写法
//写一个register.jsp页面
<form action="/day27/register.do" method="post">
4、分控制器写法
//写一个分控制器RegisterAction.java,该分控制器一定要扩展Action类,覆写execute()方法
//分控制器
public class RegisterAction extends Action{
//覆写HTTP请求execute()方法
@Override
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
System.out.println("用户名:" + username);
return null;
}
}
二、提高
5、Form参数收集器封装
ActionForm用于封装用户的请求参数。
<form-beans>
<form-bean
name="registerForm"
type="cn.itcast.web.struts1.form.RegisterForm"/>
</form-beans>
//"type"表示form收集器的JavaBean所在工程中路径。
//"name"表示JavaBean的重新命名,也是唯一ID标识。
<action-mappings>
<action
path="/register"
type="cn.itcast.web.struts1.action.RegisterAction" >
name="registerForm"
</action>
</action-mappings>
//name是对Form收集器属性的扩展;必须与Form收集器的JavaBean标识ID一致。
6、自动封装用户的请求数据
开发RegisterForm的步骤:
a)写一个类扩展ActionForm
b)写实例变量,该实例变量与参数名一致,大小写不同
c)为每个实例变量提交setter和getter方法,框架会使用setter方法将参数传入,在Action中使用getter方法取出参数值
7、基于struts-config.xml的配置转发或重定向
ActionForward 用于完成转发。
return ActionForward(“需要跳转的页面”,”false表示转发”或”true表示重定向”) , ActionForm默认放置在request域中。
<action
path="/register"
type="cn.itcast.web.struts1.action.RegisterAction"
name="registerForm"
scope="request">
<forward
name="toSuccessJsp(与Action一致的普通字符串)"
path="/success.jsp(跳转的真实路径)"
redirect="false"(false转发true重写,默认为false)/>
注意:在struts-config.xml文件中,/表示当前web应用,即当前web工程day27
</action>