`

Struts2学习笔记day03

 
阅读更多

1.值栈:ValueStack,存储数据
     root区【栈】:Action对象中的数据,其他数据
     Context【Map结构】:
             application: #application.user=>servletContext.getAttribute("user");
             session
         request
         paramteres:#paramteres.id[0]=>request.getParamter("id");
         attr[attribute]:从属性范围由小到大依次查找
         action:Action对象

2.OGNL:对象图导航语言
    <s:property value=""/> 显示
    <s:bean var="引用" name="类的全路径">
        <s:param name="属性">值</s:param>
    </s:bean>
    迭代处理的对象都会压入Context区域,访问迭代出来的对象必须加#
    <s:iterator var="迭代出来的对象" value="集合" status="迭代状态">
       ...
    </s:iterator>
    if/else/elseif
    集合的过滤
      集合对象.{?#this.name=='值'}
      ?:符合条件的所有结果
      ^:符合条件的第一个结果
      $:符合条件的最后一个结果

3.OGNL语句自定类型转换
   Struts2.0框架不能够或者不能完整的进行自动类型转换时采用自定义类型转换
  自定义类型转换器
    1.开发一个类,extends StrutsTypeConverter
    2.配置文件,声明自定义类型转换器
        局部的类型转换器:
       配置文件的名称: actionName-conversion.properties
       配置文件的位置: 和Action放在同一个目录结构当中
       配置文件的内容: Action中需要类型转换器的属性=自定义类型转换器的全路径
        全局的类型转换器
           配置文件的名称: xwork-conversion.properties
           配置文件的位置: 在src目录下面
           配置文件的内容: 需要进行类型转换的类型=自定义类型转换器的全路径
        局部类型转换:只针对某一个Action的某一个属性进行转换
    全局类型转换:对所有Action对象中该类型的属性进行转换

4.Struts2.0国际化
    B/S结构中为网页提供多国语言的支持
       1.B/S架构为每一个语言提供一套页面
          缺点:修改页面风格,每一套都必须修改
       2.B/S国际化是Struts2.0的半成品
          只要提供一套页面,不同国家访问时就能看到相应的文字
      1.知道用户的所在国家
         浏览器使用国别码来识别地区
      2.所在国家文字的提供,在一个页面中可以显示中文或者英文
         e.properties{username password}
         c.properties{用户名  密码}
          login.jsp
      占位符占位<input type="text" name="username"/>

   Struts2.0国际化开发过程
      1.提供文字的配置文件(资源文件)
         1)位置:src目录下面
     2)命名:xxx.properties
        appRes_zh_CN.properties(中文的资源文件)
          注意:在处理非拉丁语系的时候,要先转换成unicode编码
           使用 native2ascii命令
          native2ascii -encoding gbk 源文件名 目标文件名
          native2ascii -encoding gbk appRes.properties appRes_zh_US.properties
        appRes_en_US.properties(英文的资源文件)
      2.在struts.xml文件中进行配置
        <constant name="struts.custom.i18n.resources" value="appRes"></constant>
      3.在jsp页面中使用占位符站位
        使用Struts2.0提供的<s:text name="资源文件的key"/>进行占位

5.Struts2.0提供的数据格式校验
   js校验:存在被用户篡改的风险
   Struts2.0提供的校验步骤
     1.获得数据:使用Action的属性进行封装
     2.对获得的数据进行判断(方法)
        Struts2.0的ActionSupport提供了validate方法进行数据格式校验
     3.在Struts.xml中配置异常跳转
        在Struts2.0体系中为异常以及错误定义了固定的result
           name=input     //
    显示错误信息:<s:fielderror></s:fielderror>
                   <s:fielderror><s:param>key</s:param></s:fielderror>

  数据格式校验的方法
           js                    Struts2.0
优点: 客户端,效率高            安全
缺点: 容易被篡改                访问服务端,浪费资源
实际开发中:js+Struts2.0


6.Struts2.0拦截
   拦截器:为访问Action的请求增加额外功能
           保证程序的继续执行

7.如何开发一个拦截器
    1.开发一个类 implements Interceptor
    2.struts.xml配置文件
      1    <!-- 声明拦截器 -->
     <interceptors>
        <interceptor name="MyInterceptor" class="zx.struts2.day3.interceptor.MyInterceptor"></interceptor>
     </interceptors>
         自定义了拦截器,Struts2.0提供的默认拦截器失效

      2.在需要调用拦截器的action中配置
         在Action中引用拦截器的顺序决定了拦截器的执行顺序
     如果有多个拦截器是成组调用时,可以设置拦截器栈

分享到:
评论

相关推荐

    Struts2_day03笔记

    学习Struts2第三天笔记

    struts2学习笔记总结

    struts2学习笔记总结

    struts2学习笔记(完美总结)——转自OPEN经验库

    struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!

    Struts2学习笔记

    Struts2学习笔记,介绍了struts2的基础部分

    struts2_day03讲义.doc

    传智2016的视频配套struts2_day03讲义struts2_day03讲义struts2_day03讲义

    struts2 学习重点笔记

    这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用

    struts2学习笔记

    struts2学习笔记struts2学习笔记struts2学习笔记

    struts2学习笔记3数据类型转换

    struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换

    struts2学习笔记.doc

    本人学习struts2的笔记,希望大家可以多多学习以后共同交流

    Struts2_day04笔记

    学习Struts2第四天笔记

    struts2学习笔记(1)

    1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件...

    struts2学习笔记(详细文字)

    structs2很详细的学习笔记,structs2的建造,工作原理,例子,逐步讲解,纯文字的

    struts2 学习笔记 实战

    namespace :对应与项目名称后面的"/"(例如Struts2_0100_Introduction后面的"/") (http://localhost:8080/Struts2_0100_Introduction/) 四、 标签 是用来解决重名的问题,例如当系统的前台和后台都有一个action...

    struts2四天的学习笔记

    struts2四天的学习笔记。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    struts2学习笔记黑马程序员

    个人收藏,纯属备份作用,做个记录,方便需要时候查看

Global site tag (gtag.js) - Google Analytics