zoukankan      html  css  js  c++  java
  • struts2开篇

    一:struts2介绍

              Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于MVC框架。不过有一点大家需要注意的是:尽管Struts2和struts1在名字上的差别不是很大,但Struts2和struts1在代码编写风格上几乎是不一样的。

              主要是因为struts2有以下优点:

    1 > 在软件设计上Struts2没有像struts1那样跟Servlet API和struts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和struts API。 Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。

    public class OrderListAction extends Action {
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
        }
    }

    2> Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。

    3> Strut2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。在Struts1中,如果我们要实现同样的功能,就必须向Struts1的底层实现BeanUtil注册类型转换器才行。

    4> Struts2提供支持多种表现层技术,如:JSP、freeMarker、Velocity等

    5> Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛。

    6> 提供了全局范围、包范围和Action范围的国际化资源文件管理实现

    二:搭建struts2开发环境

           搭建Struts2环境时,我们一般需要做以下几个步骤的工作:

    1》找到开发Struts2应用需要使用到的jar文件.

    2》编写Struts2的配置文件struts.xml ,该文件需要存放在WEB-INF/classes下

    3》在web.xml中加入Struts2 MVC框架启动配置

    三:Action名称的搜索顺序

        获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action

    1.首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package则转步骤3;

    2.寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package,则转步骤4;

    3.寻找namespace为/path1的package,如果存在这个package,则在这个package中寻找名字为test的action,如果仍然不存在这个package,就去默认的namaspace的package下面去找名字为test的action(默认的命名空间为空字符串“” ),如果还是找不到,页面提示找不到action。

    四:url访问方式

    访问struts2中action的URL路径由两部份组成:包的命名空间+action的名称,例如访问本例子HelloWorldAction的URL路径为:/test/helloworld (注意:完整路径为:http://localhost:端口/内容路径/test/helloworld)。另外我们也可以加上.action后缀访问此Action。

    1 <package name="itcast" namespace="/test" extends="struts-default">
    2         <action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" >
    3     <result name="success">/WEB-INF/page/hello.jsp</result>
    4         </action>
    5  </package> 

    五:Action配置中的各项默认值

    1 <package name="itcast" namespace="/test" extends="struts-default">
    2 
    3         <action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" >
    4 
    5              <result name="success">/WEB-INF/page/hello.jsp</result>
    6 
    7         </action>
    8 
    9   </package>

    1>如果没有为action指定class,默认是ActionSupport。

    2>如果没有为action指定method,默认执行action中的execute() 方法。

    3>如果没有指定result的name属性,默认值为success。

  • 相关阅读:
    SSM,即Spring+SpringMVC+MyBatis三个开源框架的整合框架集。
    doAfterBody()方法是在( )接口中定义的。
    考虑下面两个JSP文件代码片断: test1.jsp:
    下列JSP代码:
    以下web.xml片断( )正确地声明servlet 上下文参数。
    以下( )可用于检索session属性userid的值。
    有关Servlet的生命周期说法正确的有( )。
    关于Web应用程序,下列说法错误的是( )。
    如何创建Cookie? (选择1项)
    HttpServlet中,用来处理POST请求的方法是(选择1项)
  • 原文地址:https://www.cnblogs.com/feimo/p/2943647.html
Copyright © 2011-2022 走看看