• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
静风铃
博客园    首页    新随笔    联系   管理    订阅  订阅

struts2

特点  使用Fitle作为控制器的MVC框架

环境配置  基本的13个包

      配置web.xml  配置Struts2的Fitle过滤器  可以从按转包中复制,版本要符合

      配置Struts.xml  

        根节点<struts>

          <package name=“包名” extends=“struts-default”>

          <constant name=“配置名” value=“新的配置值”>  (覆盖默认配置值action,空,)

          <action name=“请求名”>  <result>链接路径</result></action>

                         action中有默认的class=“类的全路径” method=“类中的方法” 不写即为默认,可自行更换

        <result name=“method的返回值”> name的值与method返回值匹配,在class类中返回          

         <result type=“响应的结果类型”>相应内容</result>

           type  dispatcher 转发  默认值,默认属性<param name=“location”>重定向的url</param>

               redirect 重定向  默认属性<param name=“location”>内部或外部的URL</param>

                        (外部url已http开头,不能重定向web-inf下的)

               redirectAction 重定向到action   默认属性<param name=“actionName”>action名字</param>

                               (不能传递action的状态)

               chain 转发到action  默认属性<param name=“actionName”>action名字</param>

                              <param nam=“method”>指定目标action类的方法</param>

                              (这个method优先级高于action设置的method)

                              (可以传递action的状态)

                          为了实现action链

action  action请求  代表应用程序的操作

     action类  处理action请求的类

           特点  属性方法定义符合POJO的要求

               form表单映射到action类的属性上,表单组件的name和属性名一至

               必须有无参的构造方法,需要进行反射

               至少有一个处理action请求的方法,要有String类型的返回值和配置文件中的result的name值进行匹配

               为每个请求创建一个action实例

      开发模式(实现了action类把form表单的字段值向实体类的转化)

        域模型方式(DomainModel)

            在action类中定义持久化类的类型属性

            form表单的字段名要使用  action持久化类名.属性名

        模型驱动方式(ModelDriven)

            action类要实现ModeDriven<实体类>  实现方法getMode()返回实体类的实例

            form表单的字段名要使用实体类的属性名

action访问web资源  

    解耦方式  对web资源进行封装,便于单元测试 

       actionContext方式  action执行的上下文对象,保存了执行action所需的的所有对象

       actionContext方式API  获取actionContext  actionContext.getContext()  调用自身的静态方法得到的实例,采用单例模式

                 采用Map<String,Object>进行封装  getParameters()  Object是String类型的数组,为了能接收同名的多个参数,用put()放入新值无效

                                 getApplication()

                                 getSession() 

                                 (Map<String,Object>)get("request")  得到封装的request集合,不能访问得到集合前的数据

       接口方式  实现接口方法,由struts2自动放入web资源,不需要重复获取

       接口方式API  ApplicationAware  void setApplication(Map<String,Object> arg0)要实现的方法

                SessionAware  void setSession(Map<String,Object> arg0)要实现的方法

                RequestAware  void setRequset(Map<String,Object> arg0)要实现的方法  不能取得之前的request值

                ParameterAware  void setParameter(Map<String,String[]> arg0)要实现的方法

    耦合方式  获取原生的web资源,必须有servlet容器的支持

      ServletActionContext方式  提供静态方法获得原始web资源

                 API  getServletContext()  得到原始的ServletContext,相当于内置对象application

                      getRequest()  得到原始的ServletRequset  可以用来得到getSession和getParameter

                             不能得到之前传入的request属性值

      接口方式  实现接口方法,由struts2自动放入原始web资源,不需要重复获取

        接口方式API  ServletRequsetAware  void setServletRequest(HttpServletRequest arg0)

                 ServletContextAware  void setServletContext(ServletContext arg0)

posted @ 2016-11-14 11:51  静风铃  阅读(121)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3