- 浏览: 310580 次
最新评论
-
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
nucleus:
为什么都是没有图的。。。。。。。求图片啊
《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext -
hunanjun000:
《研磨struts2》第四章 Action 之 4.5 Action的其它重要知识
文章列表
10.4 内建验证器
10.4.1概述
Struts2的验证框架已经为我们建立了足够多的内建验证器,以满足不同的验证要求,接下来就来逐一学习这些内建的验证器。
Struts2的内建验证器的声明文件被放置在xwork-core-2.1.6.jar文件中,其位置为/com/opensymphony/xwork2/validator/validators/default.xml,内容为:
java代码:
10.3 验证器类型
可以把验证器类型分为两种:字段验证器和动作验证器。其中,字段验证器就像前面演示的那样,只验证提交的表单内的单个字段;而动作验证器一般验证提交的表单内的多个字段的关系,比如,录入产品信息的时候,产品的进价不能高于售价。
无论是哪种验证器,都需要考虑以下几个问题:
验证谁?
使用什么条件验证?
不满足条件显示什么结果?
不满足验证条件时显示的结果出现在页面的什么位置?
10.3.1字段验证器
字段验证器用来验证提交的表单内的单个字段,如同前面的示例,在验证文件里:
java代码:
10.2 验证框架入门
10.2.1准备基础资源
通过示例来初步学习一下如何使用Struts2的验证框架,只简单的做这样一个用户注册的功能:用户注册的时候只需要填写自己的账号、姓名、年龄,其中,账号和姓名要求必填,年龄要求必填而且在18岁以上。
1:封装用户注册信息的域对象
ta�Ktr�-�8%�t;text-justify-trim:punctuation'>
10.2.1准备基础资源
java代码:
10.1 验证框架的作用
对于企业级的应用而言,服务器端验证是必不可少的。在任何一个真实的业务逻辑被调用之前,都需要验证用户提交的数据是否满足要求,比如是否填写、是否符合格式要求、数据的相关性是否正确等等。
Struts2提供了验证框架,功能强大而且简单易用,帮助我们做了很多事情,使得我们不必再从头开发了。那么,一个好的验证框架都需要考虑些什么呢?
验证功能的复用性。比如,要验证用户填入的年龄是否是18岁以上;要验证用户填入的订单金额是否在1000元以上等等。很显然,它们都是对一个int来验证取值的范围。因此,如果验证功能抽象的好,就可以复用同样的验证功能,省去重复开发的麻烦。 ...
9.6 指定语言信息的不同方式
9.6.1概述
在本节开始之前,请读者把包级别的国际化信息删掉,仅保留全局级别的国际化信息。
在9.3.3小节中,已经学过修改、使用浏览器语言设置的方式了,这里就不赘述了。接下来看看其它的方式
9.6.2 Struts2的常量设置
还可以使用Struts2的常量设置来覆盖浏览器的语言设置。比如前面的示例,在struts.xml中加上struts.locale这个常量,值为需要使用的语言,示例如下:
java代码:
9.5 Struts2访问国际化信息的不同方式
为了示例的简洁,删除在9.4节中添加的I18NAction_zh_CN.properties文件和package.properties文件,只保留全局级国际化信息资源文件。并在message.properteis中增加一个带有参数的国际化信息。
java代码:
查看
9.4 资源文件读取顺序
在进入具体示例之前,先来写一个Action,然后配置9.3.2节中的jsp作为这个Action的结果页面,好方便本节知识的示范。
这个Action非常的简单,什么都不做,只是让execute方法返回SUCCESS即可。示例代码如下:
java代码:
查看
9.3 Struts2中的国际化入门
9.3.1引用国际化信息资源文件
要使用Struts2来实现国际化的支持,同样先来准备国际化信息资源文件,把三个国际化资源信息文件恢复到最初始的状态:
(1)默认语言文件:message.properties
java代码:
9.2 Java内置的国际化
Struts2的国际化也不是无本之木,它依赖于Java内置的国际化机制,只是在Java内置的国际化机制的基础上增加了跟Struts2其他组件的融合,使得其他组件也可以非常方便的使用国际化。
9.2.1 Java内置的国际化入门
1:准备国际化信息文件
Java内置的国际化,以java.util.ResourceBundle和java.util.Locale两个类为中心。其中, java.util.Locale负责选择合适的语言,而java.util.ResourceBundle负责根据注入的java.util.Locale对象来选择国际化信息的来 ...
9.1 概述
国际化(Internationalization),通俗点讲就是让软件实现对多种语言的支持,可以通过简单的设置让软件支持的语言从一种切换到另一种。
当然,最直观的就是界面显示了,比如一个实现了国际化的软件,可以很容 ...
8.4 UI标签
8.4.1概述
UI标签是用来生成Web界面,或者为Web界面提供某些功能支持的标签,比如:表单标签就是把各种途径获取的需要展示的数据,通过动态生成HTML的形式展示到界面上。
UI标签分成如下几种:
Form Tags:表单标签,包含所有可以用在Form表单里面的标签
Non-Form UI Tags:非表单标签,主要包含错误展示、组件等
Ajax Tags:用来支持Ajax的标签,这个在后面有专门的章节来学习
8.4.2 模板和主题
在进入具体的UI标签学习之前,有必要先理解主题和模板的概念,这对使用Struts2的UI标签非常重要,因为St ...
8.3 控制标签
控制标签关注程序的运行流程,比如用if/else来进行分支控制,用iterator来进行循环控制。接下来就来学习Struts2的控制标签。
8.3.1 if、elseif与else标签
1:if标签的功能:
类似于Java程序中的if,用来 ...
8.2 数据标签
数据标签更关注如何从值栈上取值或者向值栈赋值。
8.2.1 property标签
1:功能:
用来输出OGNL表达式的值。
2:属性
property标签的主要属性:
value:用来获取值的OGNL表达式,如果value属性值没有指 ...
8.1 Struts2的Taglib概述
8.1.1概述
Struts2自带了一套非常强大的标签库,不仅自身功能强大,而且与Struts2中的其它部分无缝结合。在学习之前,先来简要回忆一下标签到底是干什么的?
估计大多数朋友都使用过JSTL,那自然熟悉JSTL的核心标签,也就是c标签。在JSP页面上使用标签,可以分离JSP上的Java代码与HTML。其中HTML用来管理把数据展现在哪儿,而Java代码用来获取数据。
先来看一个例子,如果现在request的user属性上有一个放好的UserModel,如果不使用标签,直接用Java代码来访问数据,将会写出如下的代码:
...
7.4 ActionContext和ServletActionContext
7.4.1 再探ActionContext
前面已经了解到ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,我们也称之为广义值栈。
Struts2在每次执行Action之前都会创建新的ActionContext,在同一个线程里ActionContext里面的属性是唯一的,这样Action就可以在多线程中使用。
1:ActionContext的线程安全性
那么Struts2是如何保证ActionContext的线程 ...