今天是第一天接触框架的知识,学习struts,我非常感兴趣:
Struts使用的标签库:
l struts-bean.tld: bean标签的描述文件,bean标签用于访问JavaBeans和它们的关联属性,也可以用于定义新的Bean
l struts-html.tld: html标签的描述文件,html标签主要用来创建Html输入表单的标记符
l struts-logic.tld: logic标签的描述的文件,logic标签用于管理对输出内容条件判断,从一个集合对象中循环取出内容等以及应用程序的流程管理
l struts-nested.tld: nested标签的描述文件,又称嵌套标签,使用嵌套属性可以自由的访问任一层的bean属性
l struts-template.tld: 这个template标签库的描述文件,对于共享通用格式的页面创建动态JSP模版是有用的,一般我们不用
l struts-tiles.tld: tiles标签的描述文件,只有我们在工程中加入了titles组件时才会用到,titles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离。它允许先创建模板,然后在运行时动态地将内容插入到模板中。
Struts 的配置元素:
data-sources 包含DataSource 对象(JDBC 2.0 Standard Extension)的集合.
data-source 标识一个DataSource 对象,它可以被实例化,和进行配置,并在servlet 上下文中作为一个属性 (或
者在application-scope 的bean 中).
set-property 标识一个额外的JavaBean 配置属性的方法名称和初始化值。
global-exceptions 描述一个可以被Action 对象抛出的异常的集合
exceptions 为一个异常类型注册ExceptionHandler
form-beans 描述这个应用模块中的form bean 描述符集合
form-bean 描述一个可以被<action>元素引用的ActionForm 子类
form-properties 描述一个 JavaBean 属性, 可用来配置一个DynaActionForm 实例或者其子类
global-forwards 描述对所有Action 对象都可以作为返回值的ActionForward 对象集合
forward 描述一个可以被Action 作为返回值的ActionForward对象
action-mappings 描述一个可以用来处理匹配ActionServlet 注册到容器的url-pattern 格式的请求的ActionMappings 对
象集合
action 描述一个ActionMapping 对象,可以用来处理一个对特定的模块相关的URI 的请求
controller 描述一个封装了应用模块运行时配置的控制器配置bean
message-resources 描述该模块的消息模板一起配合使用的消息资源MessageResources 对象
一、 利用Struts开发一个登陆程序的步骤:
* 创建web工程 itcaststruts1009
* 引入struts需要的jar包
* 创建登陆页面login.jsp action定义为*.do的格式
* 创建JavaBean(ActionForm) 要求:
* actionForm中属性的名称必须和表单中组件的名称(name属性的值)一致
* 该javaBean必须要继承ActionForm
* 创建LoginAction extends Action (Action是Struts中央控制器的一部分)
* 必须重写
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
* 在web.xml配置struts的中央控制器(ActionServlet),struts中只有这么一个Servlet
<!-- 配置Struts的中央控制器ActionServlet
在目前的struts版本中只能配置一个ActionServlet
任何请求都要经过Struts的中央控制器
-->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<!-- 配置初始化参数 -->
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<!-- 服务器启动的时候加载ActionServlet 值越小启动越靠前 -->
<load-on-startup>0</load-on-startup>
</servlet>
<!-- 配置ActionServlet的映射 -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<!-- 只要客户短的请求是*.do的格式,就要提交给Struts的中央控制器ActionServlet -->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
* 配置struts-config.xml文件
<struts-config>
<form-beans>
<!--
name:表示formBean的唯一标志
type:formBean的完全路径
-->
<form-bean name="loginForm" type="com.itcast.struts.form.LoginForm"></form-bean>
</form-beans>
<!-- action-mappings一个集合表单这个标签中包含多个action标签 -->
<action-mappings>
<!--
path:表示action的唯一标志 跟页面action的对应如下
<form action="${pageContext.request}/login.do" method="post">
login.do的.do去掉,在login前面加上/ 形成path属性的值/login
name:表示使用的制定的FormBean存储表单传递过来的数据
scope:制定FormBean的作用域
type:制定action的完整路径名 com.itcast.struts.action.LoginAction
-->
<action path="/login" name="loginForm" scope="request"
type="com.itcast.struts.action.LoginAction">
<!--
name:forward标签的唯一标志
path:表示要执行的路径(默认值为转发)
-->
<forward name="success" path="/success.jsp"></forward>
<forward name="error" path="/error.jsp"></forward>
</action>
</action-mappings>
</struts-config>
总结:
通过今天的学习,我知道如何配置一个struts的应用程序,配置其实并不难,重要的的是要了解struts的原理,和servlet不一样,在struts中,多个页面只提交到一个ActionServlet进行处理,ActionServlet相当于一个中央控制器,服务器启动时,加载struts的配置文件:WEB-INF/struts-config.xml ,里面配置了formbean和action,通过配置这些元素,自己写的forml类要继承ActionForm,自己写得Action类要继承Action类,这样就可以运行Struts程序了。