• Java-strurs总结


    这里是自己对自学的struts2 的一个整体 的脉络进行的一个概括,需要学习哪些东西,注重哪些东西:

    struts2 是主流框架SSH 中的一个"S" ,准备MVC开发标准的一个框架,strtus2 在MVC框架中充当“C”层,也就是控制器部分,

    主要功能:实现界面和逻辑代码的分离 (请求和视图分离)(显示和调用分离)

    学习大纲:

    Action :

    Result:

    OGNL和valueStack:

    Taglib:

    Action :

        1. Namespace     想当与包名,用来区分相同的Action名

        2.定义Action

        3.路径Path   指定basePath

        4. Action 自定义   继承ActionSupport类,这个工具类封装了很多方法

        5.DMI(Dynamic Method  Invocation )   动态的方法调用,不仅限与内置的excute()方法

        6.通配符  通过通配符, “*” 能够实现对action配置文件的简化,

       7.接收参数(3种方式)

             <1> 直接通过action的属性进行接收,直接在action中定义相同名的属性,进行接收(可利用率低)

             <2>  通过DomainModel 域接收,new一个对象,接收对象,通过传入对象的属性,去取出得到的对象的属性就是传入的值,这样,目标明确,针对性强,通常直接new bean对象就行了,                       不过,如果遇到那种“输入密码和重复输入密码的问题的时候”,就需要建立一个vo.do.dto进行接收后转换了再传给DomainModel

             <3> 通过ModelDriven 模型驱动进行接收,实现驱动模型接收,少用

       8.中文乱码问题

             配fitler中的i18n一般就能解决接收参数的中文乱码问题,不过,这里的fitler问题很奇怪,详情参见以前的一篇文章

       9.数据验证

           数据验证,如果出错,可以返回一个错误的标识符,然后在jsp页面进行显示,

           这里调用的是值栈里面的值,所以能够直接的取得

      10.值栈

      11.访问web元素

            <1> Map方式,通过复制传递

                  ActionContext.getContext().getSession().put("name","sunzhiyan");

           <2> 泛型,实现接口(IOC)

                  private Map<String , Object> request;

                  get set 方法

                  request.put("name","sunzhiyan");

            <3> 直接拿

                  ServletActionContext.getRequest().setArrribute("name","sunzhiyan");

             <4> 依赖注入  很少用

    Result:

      1.type

         Dispatche       是服务器跳转 Redirect        是客户端跳转 Chain                     服务器跳转到Action  RedirecAction    客户端跳转到Action

      2.全局结果集

          有时候如果验证错误,需要跳转到错误页面的似时候,不会一个个的去配置action,就直接定义一个公共的action专门用来导向错误页面,这里就涉及到全局结果集

    <global-results> 
    
    <result name="error">/404.jsp</result>
    
    </global-results>

    如果涉及到跨包的问题的时候,需要用到<parm>标签,进行跨包的处理

    OGNL和valueStack:

    OGNL

    是一种存取对象的属性,调用对象的方法。

    OGNL能访问静态方法,访问复杂对象,访问List,Map

    是从Action在数据的现实页面取得数据的一种方法,记住只有传值才会初始化构造方法,因此构造方法需要重载一个空的

    值栈:

    valueStack:

    ActionStack:

    ,一个轻量级的内存数据中心,分为值栈和栈上下文,取上下文的东西需要用“#”

    Taglib:

    数据标签:

    property: 从值栈中取值

    set:  设置值

    push:

    date:  时间的出入格式,自带格式住转换

    bean:

    debug: 看值栈中的内容

    url:

    a:

    include: 包含标签,不过一般不怎么用

    param:

    控制标签:

    if elseif else: 控制标签

    iterator:  迭代标签

    append:

    generator:

    UI标签不怎么用:

  • 相关阅读:
    SDUT_1743 最优合并问题
    并查集路径压缩方法
    java定时器
    出路在哪里?出路在于思路!
    ztree学习
    sql
    java乱码问题详解值得收藏
    js 增加删除表格的行
    java DataBaseExecutor
    java增删改查
  • 原文地址:https://www.cnblogs.com/sunxun/p/4157392.html
Copyright © 2020-2023  润新知