码迷,mamicode.com
首页 > 其他好文 > 详细

Struts(四)

时间:2016-07-07 00:47:51      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

==========================================OGNL=================================
OGNL:Object Graph Navigation Language
    1.取代页面中Java脚本,简化数据访问
    2.和EL一样是表达式语言,功能更强大
    
功能和特点:
    1.能存取对象的属性,也能调用对象的方法
    2.能访问静态方法、静态属性
    3.能访问值栈及StackContext
    4.能操作集合对象
    5.支持赋值、运算操作、字段类型转化

语法:
    1.导入taglib指令:<%taglib uri="/struts-tags" prefix="s" %>
    2.<s:property value="OGNL表达式"/> --> 在JSP中显示OGNL表达式的值

    
作用:
    1.表达式语言
        将表单或者Struts2标签与特定的Java数据库绑定起来,用来将数据移入,移除框架
    2.类型转换
        数据进入和流出框架,在页面数据的字符串类型和Java数据类型之间进行转换
        
值栈:ValueStack(可理解为存储数据的Map)
    1.由Struts2框架创建的存储区域,具有栈的特点
    2.Action的实例会被存放到值栈中
【注意:值栈中内容可以直接访问,访问非值栈对象需要添加#前缀】
    
OGNL访问ValueStack
    1.按照从上到下的顺序
    2.靠近栈顶的同名属性会被读取
    
访问Bean的属性
    1.Bean的类型必须遵循JavaBean规范--必须具有无参构造
    2.setter和getter方法符合JavaBean规范
    
访问集合对象
    1.可以使用属性名[index]的方式访问        如:列表,数值
    2.可以使用属性名[key]的方式访问            如:Map对象
    3.使用size或者length获取集合长度
    
==========================================URL标签=================================
语法:
<s:url value="url" />
    <s:param name="parname"  value="parvalue" />
</s:url>

value属性:表示指定生成URL的地址
<s:param />:表示需要传递的参数信息
    name属性:表示传递的参数名称
    value属性:表示传递参数所具有的值
    
==========================================日期标签=================================    
<s:date format="format"  nice="true|false"  name="name" >
           ……
</s:date>

format:指定格式进行日期格式化
nice:    指定是否输出指定日期和当前时间的时间差,默认false
name:当前需要格式化的日期
    
==========================================类型转换=================================        
基于HTTP协议的Web应用中:
    1.客户端请求的所有内容都以编码方式传输到服务器端
    2.服务器端的编程语言有丰富的数据类型
    
内置类型转换器:自动对客户端传来的数据进行类型转换(除Servlet手动转换外)
        内置类型转换器                    说    明
            String            将int、long、double、boolean、String类型的数组或者java.util.Date类型转换为字符串
            boolean/Boolean    在字符串和布尔值之间进行转换
            char/Character    在字符串和字符之间进行转换
            date            在字符串和日期类型之间进行转换。具体输入输出格式与当前的Locale相关
            数组和集合        在字符串数组和数组对象、集合对象间进行转换
    
创建自定义类型转换器
    1.继承StrutsTypeConverter抽象类(org.apache.struts2.util. StrutsTypeConverter)
    2.应用于全局范围的类型转换器
        在src目录创建xwork-conversion.properties --> 转换类全名=类型转换器类全名
    3.应用于特定类的类型转换器
        在特定类的相同目录下创建一个名为ClassName-conversion.properties的属性文件 --> 特定类的属性名=类型转换器类全名

处理类型转换错误
    1)向用户输出类型转换错误的前提条件
        1.启动StrutsConversionErrorInterceptor拦截器
            拦截器已经包含在defaultStack拦截器栈中
        2.Action要继承ActionSupport类
            实现ValidationAware接口
        3.配置input结果映射
        4.页面使用Struts 2表单标签或<s:fielderror>标签
            a.Struts 2表单标签内嵌输出错误信息功能
            b.普通HTML标签需使用<s:fielderror>标签输出转换错误
    2)修改所有类型的转换错误信息
        修改xwork.default.invalid.fieldvalue键的值
            步骤:
                1.在struts.xml中指定资源文件的基名 -- <constant name="struts.custom.i18n.resources" value="message"/>
                2.在src目录下创建资源文件并修改键值 -- xwork.default.invalid.fieldvalue=字段"{0}"的值无效
    3)定制特定字段的类型转换错误信息
        在Action范围的资源文件中添加I18N消息键invalid.fieldvalue.xxx
            在Action包下创建RegisterAction.properties,指定键值 -- invalid.fieldvalue.birthday=生日转换错误



    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
   

Struts(四)

标签:

原文地址:http://www.cnblogs.com/ivy-xu/p/5648392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!