Struts2 笔记

对于上周学的Struts2 进行一个简单的小结:

Struts2功能主要分为:过滤器, 数据校验,类型转换,结果类型,上下文,拦截器,ognl,i18n,模型驱动。

Struts2的过滤器:StrutsPrepareAndExecuteFilter 这是Struts2的核心,在web.xml中配置

1 <filter>
2       <filter-name>struts2</filter-name>
3       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
4  </filter>
5   <filter-mapping>
6       <filter-name>struts2</filter-name>
7       <url-pattern>/*</url-pattern>
8  </filter-mapping>

struts.xml这个文件的名字必须为struts.xml ,因为在容器启动的时候,自动加载这个文件。具体配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
    <!--
        package:配置包信息
           * name:为包起一个名字,用于继承
           * namespace:命名空间,相当于一个房间号,默认‘/‘,如果是默认值的话(表示任意房间)
                        * 在程序开发的时候,程序员会根据需要自定义一个命名空间,在该空间下定义自己的连接路径
           * extends:继承,要求struts.xml中所有的package都必须继承struts-default,这是struts2的核心包
     -->
    <package name="primer" namespace="/primer" extends="struts-default">
        <!--指定默认的action引用,如果该包下没有对应action配置,则启用该配置-->
        <default-action-ref name="helloWorldAction"></default-action-ref>
        <!--
            action:1、配置访问链接与类之间的映射关系
                * name:页面访问的连接helloWorldAction.action,.action是struts2的默认的后缀名(不用添加)
                * class:处理类的路径,完整的路径
                * method:如果没有method方法,默认访问的execute()方法
                         如果添加method方法,可以通过method用来指定action方法的方法
            result:2、配置类的返回值与访问到的页面之间的映射关系
                * name:类的返回的值的名字
                *   <result>
                       /primer/success.jsp
                    </result>
                    定义返回的页面
         -->

         <!--
            * 1>如果没有为action指定class,默认是ActionSupport中的execute方法。
            * 2>如果没有为action指定method,默认执行action中的execute() 方法。
          -->
        <action name="helloWorldAction" class="cn.itcast.a_primer.HelloWorldAction">
            <!--
               * 3>如果没有指定result的name属性,默认值为success。
             -->
            <result name="success">
                /primer/success.jsp
            </result>
        </action>
    </package>
</struts>
时间: 2024-08-29 21:21:14

Struts2 笔记的相关文章

Struts2笔记03——架构(转)

原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm 从一个比较高的层次来看,Struts2是一个pull-MVC(或者MVC2)框架. Struts2的 Model-View-Controller 模式通过以下五个核心组件实现: Actions Interceptors Value Stack / OGNL Results / Result types View technologies Struts2和

struts2笔记11-OGNL

1.OGNL Object-Graph Navigation Language,对象-图 导航语言,可以方便的操作struts2值栈对象 2.对象栈操作方法 (1)action普通属性的访问方法 <s:property value="[n].pName"/> 从对象栈第n个对象开始查找pName属性的值: <s:property value="[0].pName"/>,表示从栈顶对象开始查找,而从栈顶对象开始查找又可以省略索引: <s:

Struts2笔记——11.文件下载

Struts2提供了stream结果类型,是专门用于支持文件下载功能的. 实现文件下载的action类 这个类与普通action实现类的唯一区别就是,这个action类需要提供一个返回InputStream的方法.该方法是被下载文件的入口.代码如下.如果想要实现控制下载等一系列其他的功能,只需要在execute方法中实现即可. public class download extends ActionSupport { private String inputPath; public String

Struts2笔记——1.常规配置

Struts2应用的开发步骤 导入必要的包 通过MyEclipse对项目导入Struts2包,一般只需要导入core这个包就可以.如果要想手动导入,则需要将commons-logging, freemarker, ognl, struts2-core, xwork-core, commons-fileupload, jacassist, commons-long3这几个包复制到web-inf下的lib文件夹下.或者直接使用MyEclipse自带的增加Struts2的capacities的方法,选

Struts2笔记——2.Action的实现、配置

实现Action Struts2中,action负责对用户请求的处理,因此它是整个应用的控制器,也是整个应用的核心.而对开发者来说,他们需要提供大量的action类.相对于struts1而言,struts2的浸入性更低,因为它的action无需继承任何父类或者接口,仅仅是一个普通的POJO(但是应该包括一个无参数的execute方法).struts2通常直接使用action来封装http请求参数(可以理解为表单中的参数,如username,password等),因此在对应的action类中,应该

Struts2笔记——3.配置处理结果

action只是一个控制器,真正为客户端呈现处理结果的是jsp文件.而action的工作,是要在xml中配置,在特定的情况下返回特定的jsp页面.action的java类中返回的是String类型,而它仅仅是一个逻辑处理结果,或者说它只是一个代号.只有在xml中配置了逻辑结果与物理结果的映射关系,jsp页面才会作为response呈现.其实Struts2支持多种结果映射,因此物理结果资源可以是jsp,也可以是另一个action链中的另一个action.result元素起到了一个路标的作用. 配置

Struts2笔记——4.异常处理

我们希望当程序出现特定的异常,就跳转到特定的页面.并且我们希望捕获异常,处理异常的代码出现在一个特定的文件中.由于Action接口能够抛出所有异常,因此重写该方法时无需任何异常处理,直接丢给Struts2框架就好.框架会根据xml文件配置的异常映射,转入到指定的视图资源.通过此方法,action中无需任何异常捕获,仅仅需要操作struts.xml.使用该机制需要打开异常映射功能,因此需要一个拦截器(默认的叫exception),而我们发现在default.xml中已经为我们打开了. 声明式异常捕

Struts2笔记——6.国际化

Struts2的国际化是建立在java的国际化基础上的.通过提供不同国家或者语言环境的消息资源,然后通过ResourceBundle加载指定Locale对应的资源文件,再获取该资源文件中的指定key对应的消息.Struts2框架对这一过程进行了进一步的封装,简化了应用程序的国际化.它可以为jsp,Action,全局范围提供不同的国际化资源,因此维护的时候可以分开维护.Struts2的国际化可以按照以下步骤进行:加载国际化资源文件.输出国际化. action范围.包范围的国际化资源会被系统自动加载

struts2笔记(2)

Struts2 中, HTML 表单将被直接映射到一个 POJO,通过params拦截器,类中定义对应属性,及对应set方法即可. params拦截器会把请求参数的值赋给栈顶对象对应的各个属性,如果栈顶对象没有对应属性,则往下找下一个对象对应的属性. 如果已经有了一个javabean,表单传过来了bean的属性,就不需要再action中再写一遍bean的每个属性来赋值了,可以直接写一个bean的变量,通过ModelDriven拦截器,如果 Action 类实现了 ModelDriven 接口,该

Struts2笔记1

一.简介 1.作用于web层:Struts2是一种基于MVC模式的轻量级Web框架; 2.各文件夹简介: ?    apps:该文件夹存用于存放官方提供的Struts2示例程序,这些程序可以作为学习者的学习资料,可为学习者提供很好的参照.各示例均为war文件,可以通过zip方式进行解压. ?    docs:该文件夹用于存放官方提供的Struts2文档,包括Struts2的快速入门.Struts2的文档,以及API文档等内容. ?    lib:该文件夹用于存放Struts2的核心类库,以及St