一、概述

  Struts2是基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts作为控制器(Controller)来建立模型与视图之间的数据交互。Struts2是Struts1的下一代产品,是在WebWork技术基础上进行合并的全新的框架,其全新的体系结构与Struts1差距很大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全分离,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着巨大的变化,但是相对于WebWork,Struts2的变化很小。

 

二、环境搭建

  首先我们需要相关jar包

Struts2的开发包下载地址:https//struts.apache.org/  下载完开发包后进行解压所需jar包就在解压后的lib包下一下为Struts2所需的jar包

三、Action的创建与配置

  1. 创建Action的三种方式:

          1).直接创建类,在这个类中编写一个public String execute()方法,该方法没有任何参数

          2).创建一个类实现Action接口并重写execute()方法

          3).创建一个类基层ActionSupport类

  2.配置sruts2的访问路径

        1)struts2核心配置文件:核心配置文件的名称和位置都是固定的 在src下 名称为struts.xml(可以分模块引入)

        • 引入dtd约束:

          <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
          "http://struts.apache.org/dtds/struts-2.3.dtd">     

        • <struts>

        • <constant name = "struts.i18n.encoding" value = "UTF-8"></constant>
        • <package name = "helloword" extends = "struts-default" namespace = "/">

              <action name = "hello" class = "带有包名的action类">

               <result name = "方法返回值">/helloword.jsp</result>

               </action>

            </package>

            </struts>

             2).配置struts过滤器(在web.xml中)

            <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
            </filter>

            <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
            </filter-mapping>

          3).分模块开发的配置文件:单独写配置文件,然后把配置文件引入到核心配置文件中在引入helloword.xml文件

            <include file = "cn/.路径./helloword.xml"></include>(在struts标签下)

三、Struts2的执行过程

四、配置文件的解释

         1.package标签:类似于代码包,区别不同的action,要配置acion必须先配置package标签。

                 name属性:它的值跟功能没有关系,在一个配置文件中可以写多个package,但是name值不能相同。

                 extends属性:该属性值固定为struts-default   有了这个属性之后再package里面配置的action类才具有功能。

                 namespace属性:该属性值与action标签里面的name值一起组成访问路径。默认值为“/”

         2.action标签: 

                name属性:配置action的访问路径,与package中的name一起组成访问路径,三它的值不不能与娶其他action中的相同。               

                class属性:所需配置action类的全路径g

                method属性:比如在action默认执行的方法是execute,如果想让他执行其他方法可在此配置,可配置多个。

         3.result标签:该标签里面的值为访问路径,执行action时会访问该路径下的页面

                name属性:和方法的返回值一样

                type属性:配置如何到返回路径中(转发or重定向)

          4.constant标签:修改struts2的默认属性值用的 一般不用修改。还有两种修改的方法分别是在src下配置一个struts.propeties文件进行修改和在web.xml文件中进行配置

框架学习Struts2之HelloWord的更多相关文章

  1. SSH框架学习------struts2前后台传值(二)

    struts2的Action类一般都会继承(extends)ActionSupport类(Action类,即实现action的类)1.前传后:jsp里<input type="text ...

  2. SSH框架学习------struts2(一)

    1.总的目录 2.所有程序 1)index.jsp很简单 <%@ page language="java" contentType="text/html; char ...

  3. Struts2框架学习(三) 数据处理

    Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...

  4. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  5. Struts2框架学习(一)

    Struts2框架学习(一) 1,Struts2框架介绍 Struts2框架是MVC流程框架,适合分层开发.框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计. 2 ...

  6. [ SSH框架 ] Struts2框架学习之二

    一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Str ...

  7. [ SSH框架 ] Struts2框架学习之四(自定义拦截器)

    一.Struts2的拦截器 1.1 拦截器概述 拦截器,在AOP( Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截 ...

  8. struts2框架学习之第一天

    day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架 ...

  9. Java后台处理框架之struts2学习总结

    Java后台处理框架之struts2学习总结 最近我在网上了解到,在实际的开发项目中struts2的使用率在不断降低,取而代之的是springMVC.可能有很多的朋友看到这里就会说,那还不如不学str ...

随机推荐

  1. React 组件间通讯

    React 组件间通讯 说 React 组件间通讯之前,我们先来讨论一下 React 组件究竟有多少种层级间的关系.假设我们开发的项目是一个纯 React 的项目,那我们项目应该有如下类似的关系: 父 ...

  2. webpack.config.js文件的高级配置

    一.多个入口文件之前我们配置的都是 一个入口 var webpack = require('webpack'); var commonsPlugin = new webpack.optimize.Co ...

  3. Mybatis转义字符

    Mybatis的sql语句中需要用到'>'或者'<'时,不能直接使用. < < 小于号 > > 大于号 & & 和 &apos; ' 单引号 ...

  4. 多线程——工具类之Semaphore

    一.Semaphore功能介绍 Semaphore类相当于线程计数器,在获取Semaphore对象时设定可以产生的线程总数(线程并不是Semaphore类生成的,它只是统计线程的数量),创建Semap ...

  5. Eclipse中的所有快捷键列表

    Eclipse中的所有快捷键列表: Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制 ...

  6. OSM数据下载地址

    1.OSM数据下载地址 官网下载: http://planet.openstreetmap.org/ GeoFabrik:http://www.geofabrik.de/ Metro Extracts ...

  7. [BZOJ 1079][SCOI 2008]着色方案

    1079: [SCOI2008]着色方案 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2237  Solved: 1361[Submit][Stat ...

  8. Java基础学习笔记二十六 JDBC

    什么是JDBC JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库.原来我们操作数据库是在控制台使用SQL语句来操作数据库,J ...

  9. 张金禹 C语言--第0次作业

    1:在填报专业的时候,我也犹豫了很久,但最后还是选择了计算机专业.因为在上大学之前我就对编程.设计等有浓厚的兴趣,但繁重的高中学习任务使我没有过多的去关注,所以我选择了计算机专业去培养我在这方面的兴趣 ...

  10. python 归并排序

    def merge_sort(alist): if len(alist) <= 1: return alist # 二分分解 num = len(alist)/2 left = merge_so ...