Java之struts2框架学习

About Struts2

Struts也是一款MVC框架 , Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全新的Struts2框架
其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心
Struts2=Struts1+WebWork,而WebWork的核心就是XWork。

XWork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL—the Object Navigation Language),IOC(Inversion of Control 反转控制)容器等。

Struts2 路由配置方式

1、StrutsPrepareAndExecuteFilter

第一种是通过StrutsPrepareAndExecuteFilter,它是Struts2的核心控制器,也是一个Filter,配置/*会拦截所有请求,通过之后转发给Struts2框架做请求处理

<filter>
        <filter-name>struts</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
        <filter-name>struts</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>

而这样就是全局都是走struts2的路由了

2、ActionServlet

还有一种配置如下,通过ActionServlet并配置*.do后缀来匹配请求,将.do的请求交给ActionServlet做处理,最终交给Struts2框架

  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
 <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>
    <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
  </servlet>

这样操作,就可以自定义一些servlet,从而不走struts2框架进行处理,同时也可以融入SpringMVC,审计时也会遇到SpringMVC+Struts2两个MVC框架做路由的处理。application的配置是说明你的资源包的名字是ApplicationResources.properties,这个一般有关于struts-config.xml文件中的message-resources标签

struts-config.xml

<struts-config>是struts的根元素,它主要有8个子元素,DTD定义如下:

<!ELEMENT struts-config
(data-sources?,form-beans?,global-exceptions?,global-forwards?,action-mappings?,controller?,message-resources*,plug-in*)
>

data-sources

Data-sources元素用来配置应用程序所需要的数据源。java语言提供了javax.sql.DateSource接口,所有数据源必须实现该接口。如下配置:

<data-sources>
  <data-source type="org.apached.commons.dbcp.BasicDataSource">
    ………………
  </data-source>
</data-sources>

在action中访问方式如下: ataSource = getDataSource(request,"a");

javax.sql.DataSource dataSource;
java.sql.Connection myConnection;
try
{
  dataSource = getDataSource(request);
  myConnection = dataSource.getConnection();
}

form-beans

该元素主要用来配置表单验证的类。它包含如下属性:
  1. classname:一般用得少,指定和form-bean无素对应的配置类,默认为org.apache.struts.config.FormBeanConfig,如果自定义,则必须扩展FormBeanConfig类。可有可无。
  2. name:ActionForm Bean的惟一标识。必须。
  3. type:ActionForm的完整类名。必须。

<form-beans>
  <form-bean 
      name="Loign"
      type="com.ForumActionForm">
  </form-bean>
</form-beans>

像是表单名称与type指定的类进行一个绑定,一般type指定的类会继承ActionForm类,ActionForm是struts2中的核心组件之一,用来处理表单数据,本质是一个javabean。

其中自带validate()方法和reset()方法是 ActionForm中两种可以覆盖的方法。validate()方法中定义具体的 ActionForm验证规则。reset()方法则是在初始化时被调用。

action-mappings

描述从特定的请求路径到相应的Action类的映射。该元素用于将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&#

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值