struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。
一、Struts配置文件:struts-config.xml
1.配置global-forward:添加标签,可以定义全局转发,并不专属于某个action。作用和标签下的标签是一样的。通过创建逻辑名称映射,实现JSP页面的跳转。
<global-forwards>
<forward name="index" path="/index.jsp"/>
</global-forwards>
2.配置form-beans:添加标签,创建逻辑名称映射ActionForm类。JSP页面表单提交时,通过这些配置文件,将页面数据映射并保存到相应的ActionForm类中。
<form-beans>
<form-bean name="loginForm" type="com.bjpowernode.struts.LoginActionForm"></form-bean>
</form-beans>
3.配置actionmappings:添加标签,映射Action类,如果Action中用到ActionForm类,那么会将Action和ActionForm类建立关联。添加标签控制转向。
<action-mappings>
<action path="/login"
type="com.bjpowernode.struts.LoginAction"
name="loginForm"
scope="request"
>
<forward name="success" path="/login_success.jsp"></forward>
<forward name="error" path="/login_error.jsp"></forward>
</action>
</action-mappings>
二、ActionServlet类
struts框架中的控制器组件。这个类实现了javax.servlet.http.HttpServlet类,是Struts的Controller。
ActionServlet截取用户的Http请求,把请求映射到相应的Action类上。并创建ActionForm类,调用Action的execute()方法,将ActionMapping对象,ActionForm Bean对象,request,response作为参数传递过去。
1.ActionMapping类
通过截取用户请求,在struts-config.xml中映射到特定Action的相关信息存储在ActionMapping中。作为Action类中execute()方法的一个参数。完成调用相应的逻辑处理类后,用ActionMapping的findForward()方法,完成转发。
2.Action类
Action类真正实现了业务逻辑。所有的Action类都继承org.apache.struts.action.Action类。并重写了execute方法。
Action实现了线程安全,保证控制器面对多个用户请求时共享一个实例。
3.ActionForward类
根据Action类的处理的结果,控制器跳转到转向页面。
4.ActionForm类
struts框架中,为表单创建了ActionForm Bean,在struts-config.xml文件中定义bean,并将其与Action关联起来,会将form作为参数传递到Action中。这样Action中可以对其直接处理。
三、错误处理类
struts提供了两个错误类:ActionErrors和ActionError,它们都集成org.apache.struts.action类。ActionErrors保存着ActionError对象的集合。其中每一个都代表了独立的错误信息。