
研磨struts2
文章平均质量分 95
iteye_17883
这个作者很懒,什么都没留下…
展开
-
《研磨struts2》第九章 国际化 之 9.1 概述
9.1 概述国际化(Internationalization),通俗点讲就是让软件实现对多种语言的支持,可以通过简单的设置让软件支持的语言从一种切换到另一种。当然,最直观的就是界面显示了,比如一个实现了国际化的软件,可以很容易的从英文界面切换成中文界面。在日常工作中也常见到国际化的软件,比如Eclipse就是多语言的,只要安装了相应的语言包,在启动的时候指定语言参数就可以实现软件...2012-05-13 08:05:28 · 103 阅读 · 0 评论 -
《研磨struts2》第十章 验证框架 之 10.7 验证器框架的查找顺序
10.7 验证器框架的查找顺序10.7.1 验证器框架的查找顺序Struts2的验证框架为了使验证信息通用,指定了较为复杂的验证继承关系,当验证框架需要验证一个Action的时候,会按照以下的优先级收集验证信息:父类-validation.xml父类-别名-validation.xml接口-validation.xml接口-别名-validation.xml...2012-05-26 09:17:29 · 106 阅读 · 0 评论 -
《研磨struts2》第十一章 类型转换 之 11.1 类型转换的作用
11.1 类型转换的作用11.1.1类型转换的作用在Web应用中,页面提交请求的参数都是字符串类型的。但是在以前的学习中,我们都是直接在Action中按照需要来定义属性的类型,比如private int age,也没有出错,照样运行啊,而且还能正确运行呢,这是怎么回事情呢?这就是由Struts2的类型转换框架默默的帮助我们完成的功能,只要用户输入的数据能合理的转换为需要的属...原创 2012-05-26 09:17:53 · 119 阅读 · 0 评论 -
《研磨struts2》第十一章 类型转换 之 11.1 类型转换的作用
11.1 类型转换的作用11.1.1类型转换的作用在Web应用中,页面提交请求的参数都是字符串类型的。但是在以前的学习中,我们都是直接在Action中按照需要来定义属性的类型,比如private int age,也没有出错,照样运行啊,而且还能正确运行呢,这是怎么回事情呢?这就是由Struts2的类型转换框架默默的帮助我们完成的功能,只要用户输入的数据能合理的转换为需要的属...2012-05-26 09:18:14 · 104 阅读 · 0 评论 -
《研磨struts2》第十一章 类型转换 之 11.2 内建类型转换器
11.2 内建类型转换器Struts2内建的类型转换器能处理绝大多数的需求,只有极特殊情况才需要自定义类型转换器。在这一节中就一起来看看Struts2的内建类型转换器都可以完成哪些工作。11.2.1简单类型Struts2已经内置了基本数据类型及其包装类和其他一些常见的用于表示数字/日期类型的类型转换器,包括:int/Integer:整数型short/Short:短...2012-05-26 09:18:54 · 111 阅读 · 0 评论 -
《研磨struts2》第十一章 类型转换 之 11.3 自定义类型转换器
11.3 自定义类型转换器11.3.1概述虽然内建类型转换器能满足绝大多数的需求,但是,有的时候还是需要使用自定义类型转换器来实现特定的需求。还是用前面的长方形来说明,如果用两个文本框分别输入长方形的高和宽,整个类型装换都没有问题,它可以工作的很好。但是,如果我们想在一个文本框内同时输入宽和高(width:height),形如16:9,这个时候就需要自定义类型转换器了。...2012-05-26 09:19:21 · 116 阅读 · 0 评论 -
《研磨struts2》第十一章 类型转换 之 11.4 类型转换器引用方式
11.4 类型转换器引用方式11.4.1全局级类型转换器引用在上一节中,使用的就是全局级类型转换器引用。简单回顾一下,在src下建立一个xwork-conversion.properties文件,这个文件中用“全类名=这个类对应的类型转换器全类名”,来建立类和类型转换器的关系。示例: java代码:查看复制到剪贴板打印cn.javass.co...2012-05-28 07:52:31 · 105 阅读 · 0 评论 -
《研磨struts2》第十二章 CRUD综合运用 之 12.1 概述
《研磨struts2》第十二章 CRUD综合运用 之 12.1 概述 收藏浏览(132)|评论(0) 交流分类:Java|笔记分类: 研磨struts2 编辑 | 删除 | 锁定 12.1 概述12.1.1 功能简介在前面的章节中,已经学习了Struts2的绝大多数核心知识。在这一章中,将使用一个简单的用例,来对前面的知识进行综合运用,好让大家融会贯通这些知识。...2012-05-28 07:52:56 · 120 阅读 · 0 评论 -
《研磨struts2》第十二章 CRUD综合运用 之 12.2 实现域对象和数据层
12.2 实现域对象和数据层12.2.1 建表和域对象在示例中只需要管理用户的基本信息,用户编号(userId)、姓名(name)、性别(sex)、年龄(age)即可,在mysql中,可以用下面的语句建表: java代码:查看复制到剪贴板打印create table tbl_user( userId int primar...2012-05-28 07:53:45 · 2443 阅读 · 0 评论 -
《研磨struts2》第十章 验证框架 之 10.6 引用验证器返回的错误信息
10.6 引用验证器返回的错误信息10.6.1引用验证器返回的错误信息在以前的学习中,已经接触到了如何引用验证器返回的错误信息,现在来全面的整理一下如何引用验证器返回的错误信息。引用字段验证错误有两种方式:对于字段验证错误来说,在<s:form>使用xhtml风格的时候,<s:textfield/>标签会将这个字段的错误信息显示在这个文本框的上...2012-05-17 15:16:35 · 97 阅读 · 0 评论 -
《研磨struts2》第十章 验证框架 之 10.5 自定义验证器
10.5 自定义验证器10.5.1概述虽然Struts2的内建验证器可以完成绝大多数的验证需求,但是,有的时候还是需要个性化定制一些自定义的验证器。 以一个示例来说明吧。来实现一个不接受中文字符的验证器,比如,在一个网站上进行注册,在填入账号的时候,必须填入英文字符或者是数字等,而不接受中文字符,同时还要求验证器可以分辨以下三种情况:全是非中文字符全是...2012-05-17 15:13:25 · 113 阅读 · 0 评论 -
《研磨struts2》第十章 验证框架 之 10.4 内建验证器
10.4 内建验证器10.4.1概述Struts2的验证框架已经为我们建立了足够多的内建验证器,以满足不同的验证要求,接下来就来逐一学习这些内建的验证器。 Struts2的内建验证器的声明文件被放置在xwork-core-2.1.6.jar文件中,其位置为/com/opensymphony/xwork2/validator/validators/default....2012-05-17 15:12:40 · 95 阅读 · 0 评论 -
《研磨struts2》第九章 国际化 之 9.2 Java内置的国际化
9.2 Java内置的国际化Struts2的国际化也不是无本之木,它依赖于Java内置的国际化机制,只是在Java内置的国际化机制的基础上增加了跟Struts2其他组件的融合,使得其他组件也可以非常方便的使用国际化。9.2.1 Java内置的国际化入门1:准备国际化信息文件Java内置的国际化,以java.util.ResourceBundle和java.util.Lo...2012-05-13 08:06:04 · 118 阅读 · 0 评论 -
《研磨struts2》第九章 国际化 之 9.3 Struts2中的国际化入门
9.3 Struts2中的国际化入门9.3.1引用国际化信息资源文件要使用Struts2来实现国际化的支持,同样先来准备国际化信息资源文件,把三个国际化资源信息文件恢复到最初始的状态:(1)默认语言文件:message.properties java代码:查看复制到剪贴板打印labela = labela in zh_CN labe...2012-05-13 08:06:44 · 126 阅读 · 0 评论 -
《研磨struts2》第九章 国际化 之 9.4 资源文件读取顺序
9.4 资源文件读取顺序在进入具体示例之前,先来写一个Action,然后配置9.3.2节中的jsp作为这个Action的结果页面,好方便本节知识的示范。 这个Action非常的简单,什么都不做,只是让execute方法返回SUCCESS即可。示例代码如下: java代码:查看复制到剪贴板打印package cn.javass.i18...2012-05-13 08:07:18 · 101 阅读 · 0 评论 -
《研磨struts2》第九章 国际化 之 9.5 Struts2访问国际化信息的不同方式
9.5 Struts2访问国际化信息的不同方式为了示例的简洁,删除在9.4节中添加的I18NAction_zh_CN.properties文件和package.properties文件,只保留全局级国际化信息资源文件。并在message.properteis中增加一个带有参数的国际化信息。 java代码:查看复制到剪贴板打印labela = lab...2012-05-15 07:56:15 · 180 阅读 · 0 评论 -
《研磨struts2》第九章 国际化 之 9.6 指定语言信息的不同方式
9.6 指定语言信息的不同方式9.6.1概述在本节开始之前,请读者把包级别的国际化信息删掉,仅保留全局级别的国际化信息。 在9.3.3小节中,已经学过修改、使用浏览器语言设置的方式了,这里就不赘述了。接下来看看其它的方式9.6.2 Struts2的常量设置还可以使用Struts2的常量设置来覆盖浏览器的语言设置。比如前面的示例,在struts.xml中...2012-05-15 07:56:38 · 96 阅读 · 0 评论 -
《研磨struts2》第十章 验证框架 之 10.1 验证框架的作用
10.1 验证框架的作用对于企业级的应用而言,服务器端验证是必不可少的。在任何一个真实的业务逻辑被调用之前,都需要验证用户提交的数据是否满足要求,比如是否填写、是否符合格式要求、数据的相关性是否正确等等。Struts2提供了验证框架,功能强大而且简单易用,帮助我们做了很多事情,使得我们不必再从头开发了。那么,一个好的验证框架都需要考虑些什么呢?验证功能的复用性。比如,要验证...2012-05-15 07:56:59 · 93 阅读 · 0 评论 -
《研磨struts2》第十章 验证框架 之 10.2 验证框架入门
10.2 验证框架入门10.2.1准备基础资源通过示例来初步学习一下如何使用Struts2的验证框架,只简单的做这样一个用户注册的功能:用户注册的时候只需要填写自己的账号、姓名、年龄,其中,账号和姓名要求必填,年龄要求必填而且在18岁以上。1:封装用户注册信息的域对象ta�Ktr�-�8%�t;text-justify-trim:punctuation'>10...2012-05-15 07:57:42 · 386 阅读 · 0 评论 -
《研磨struts2》第十章 验证框架 之 10.3 验证器类型
10.3 验证器类型可以把验证器类型分为两种:字段验证器和动作验证器。其中,字段验证器就像前面演示的那样,只验证提交的表单内的单个字段;而动作验证器一般验证提交的表单内的多个字段的关系,比如,录入产品信息的时候,产品的进价不能高于售价。无论是哪种验证器,都需要考虑以下几个问题:验证谁?使用什么条件验证?不满足条件显示什么结果?不满足验证条件时显示的结果出现在页面...2012-05-17 15:11:02 · 112 阅读 · 0 评论 -
《研磨struts2》第十二章 CRUD综合运用 之 12.3 使用Struts2来实现表现层
2.3 使用Struts2来实现表现层12.3.1 将一组相关的Action类合成一个在前面学习的时候,每个Action类都只对应一个单独的web请求,那么,这样做会带来什么问题呢? 先想一下,用户在添加页面上点击添加按钮之后,会发生什么事呢?Struts2会提交到负责添加的Action中,这个Action只是接收前一个页面传过来的数据,然后把它填入数据库就可...2012-05-29 08:00:46 · 152 阅读 · 0 评论 -
《研磨struts2》第十二章 CRUD综合运用 之 12.4 加入国际化信息
12.4 加入国际化信息12.4.1 回顾国际化信息接下来给上面的示例加上对国际化信息的支持。先来回忆一下国际化信息的基本知识,国际化信息的知识分成三大部分:如何配置国际化信息?l 全局级别。在struts.xml中配置常量struts.custom.i18n.resources,来指定国际化文件的名字。l Action级别...2012-05-30 07:52:20 · 169 阅读 · 0 评论 -
《研磨struts2》第十二章 CRUD综合运用 之 12.5 加入验证
12.5 加入验证12.5.1 回顾验证框架现在可以使用Struts2的验证框架,在真正调用Action的处理方法之前,来验证用户输入的信息是否符合要求。 使用验证框架要考虑四点:在哪儿指定验证信息?最常见的是在Action的同包下建立Action名- validation.xml,但是,现在的UserAction同时负责响应多种请求,所以,要用A...2012-05-30 07:52:46 · 123 阅读 · 0 评论 -
《研磨struts2》第十六章 单元测试 之 16.2 测试动作类Action
16.2 测试动作类Action16.2.1测试动作类Action入门通过前面的学习已经了解到:Struts2的动作类Action,可以做到完全和web无关,不再依赖HttpServletRequest和HttpServletResponse等servlet的Api,因此,可以非常方便的直接在java application中调用和运行。 来写一个Action...2012-06-14 13:22:37 · 131 阅读 · 0 评论 -
《研磨struts2》第十六章 单元测试 之 16.3 测试完整的Struts2运行流程
16.3 测试完整的Struts2运行流程16.3.1概述在上面单元测试动作类Action中,基本上是把Struts2的Action类当作一个普通的Java类来进行测试,就没有涉及到Struts2的其他部分,也没有涉及到完整的Struts2的运行流程,比如:拦截器、验证框架、Result等等。回忆一下Struts2的运行流程图,如果想运行对应的拦截器的话,就不能直接运行Ac...2012-06-14 13:23:14 · 134 阅读 · 0 评论 -
《研磨struts2》第十七章 防止重复提交 之 17.1 什么是重复提交
17.1 什么是重复提交所谓重复提交,就是用户在页面多次点击提交按钮,或者通过不断刷新页面,把已经提交过的数据多次向后台提交。重复提交对于查询类的功能,问题还不是太大,但是对于新增或是修改类的功能,就有可能凭空的出现很多同样信息的重复数据,从而导致业务功能出现错误。用一个实例来让大家体会一下重复提交的问题,来实现一个订单新增的功能,订单号一般都是由后台自动生成,前台页面只要传...2012-06-18 13:45:06 · 160 阅读 · 0 评论 -
《研磨struts2》第十七章 防止重复提交 之 17.2 使用标签
17.2 使用<s:token/>标签17.2.1 使用<s:token/>标签入门Token也被称做令牌,所以使用<s:token/>标签防止重复提交,也常被称做使用令牌防止重复提交。1:修改页面 <s:token/>标签的使用非常简单,只需要在提交页面的<s:form>标签内加上子标签<...2012-06-18 13:45:43 · 161 阅读 · 0 评论 -
《研磨struts2》第十七章 防止重复提交 之 17.3 更强大的tokenSession拦截器
17.3 更强大的tokenSession拦截器回顾一下上面<s:token/>标签和token拦截器连用,解决了重复提交问题,用法极其简单:Action引用token拦截器,<s:form/>标签内加一个<s:token/>标签,两句话就足以概括,一分钟就足以做完。但是结果稍稍有点遗憾:对于一次正常提交和一次重复提交,使用token拦截器会使...2012-06-18 13:46:12 · 122 阅读 · 0 评论 -
研磨struts2(1-10章)电子书下载
研磨struts2的博客文章私塾在线学习网 《研磨struts2》基础实战查看目录1. 研磨struts21.1 《研磨struts2》 第一章 Struts2概述 之 MVC模式1.2 《研磨struts2》 第一章 Struts2概述 之 Struts2基础1.3 《研磨struts2》 第一章 Struts2概述 之 Struts2和MVC1.4 《研...2012-06-19 07:30:55 · 252 阅读 · 0 评论 -
《研磨struts2》第十八章 结合JFreeChart 之 18.1 JFreeChart使用
18.1 JFreeChart使用18.1.1概述对于一个企业级的应用而言,经常会用到一些直观的图形化报表,用于帮助用户进行商业决策或者逻辑分析等,比如:用一个饼图来显示公司员工的学历比例,比如本科生占50%,研究生占30%,博士占20%。也可以用一个折线图来显示销售人员近几年的业绩,比如,小王2007年销售额15万,2008年20万,2009年20万;而小张2007年...2012-06-20 15:48:13 · 151 阅读 · 0 评论 -
《研磨struts2》第十八章 结合JFreeChart 之 18.2 Struts2插件概述
Struts2并没有求大求全,企图把所有的功能都包含进来,而是设计了一个灵活、可扩展的插件体系,让所有的人都可以以做插件的方式,为Struts2添加新的功能,这也是Struts2非常吸引人的地方之一。来简单的认识一下Struts2的插件。打开Struts2 下载包中的lib目录struts-2.1.8.1\lib,会发现,这里面以struts2作为文件名开头的文件可以被分...2012-06-28 12:11:36 · 112 阅读 · 0 评论 -
《研磨struts2》第十六章 单元测试 之 16.1 概述
16.1 概述测试是软件项目开发过程中非常重要的一环,大家耳熟能详的一些软件工程的理论,比如极限编程(XP),测试驱动开发(Test Driven Develop)等等,都特别强调了测试的重要性。测试又分为很多种:单元测试、集成测试、回归测试、性能测试、压力测试等等。对于程序人员来说,最起码要负责单元测试的工作,程序人员写好了自己所负责部分的代码,在交出代码之前一定要进行单元测试...2012-06-14 13:22:03 · 111 阅读 · 0 评论 -
《研磨struts2》第十五章 整合Spring 之 15.3 自动装配
15.3 自动装配15.3.1自动装配Spring支持自动装配的方式,也就是如果等待注入的对象所提供的属性,与Spring的配置中已经存在的Bean的定义之间有某种关联的话,就可以不用写<property>元素来手工实现依赖注入的装配了,而是改由Spring来自动装配。Spring支持多种自动装配的策略:byName:根据对象的属性名称来自动装配。简单...2012-06-13 13:45:36 · 118 阅读 · 0 评论 -
《研磨struts2》第十五章 整合Spring 之 15.2 整合Spring与Struts2
15.2 整合Spring与Struts215.2.1概述以上面的示例来说明整合Spring和Struts2的基本方式:SampleAction与SampleService的生命周期和依赖关系都由Spring去管理。Struts2需要SampleAction实例的时候,不是自己新建实例,而是向Spring去请求获取一个实例,也就是SampleAction实例的...2012-06-13 13:43:40 · 114 阅读 · 0 评论 -
《研磨struts2》第十二章 CRUD综合运用 之 12.6 加入拦截器
12.6 加入拦截器12.6.1 回顾拦截器拦截器是Struts2的核心概念,可以在Action运行之前或Result运行之后执行一些共通的任务。虽然学过了,但是还从来没有使用过,接下来,我们就来为这个示例添加一个自定义的拦截器,实现如下的功能:可以打印出所调用的Action,调用Action的哪个方法,所有的request参数,以及最后要跳转到哪个页面。这样有利于调试,...2012-05-31 07:34:32 · 141 阅读 · 0 评论 -
《研磨struts2》第十三章 文件上传下载 之 13.1 文件上传
13.1 文件上传13.1.1 概述在开发基于Web的应用的时候,经常会碰到需要实现文件上传、下载的功能,比如编辑某个商品,需要给它上传一个图片等等。不使用Struts2的话,可以有很多种方式来实现文件上传,比如使用Apache的Common-FileUpload等。但是这些传统的方式,实现起来非常麻烦,需要写很多代码来进行控制。现在使用Str...2012-05-31 13:09:54 · 147 阅读 · 0 评论 -
《研磨struts2》第十三章 文件上传下载 之 13.2 文件下载
13.2 文件下载13.2.1概述前面学习了文件上传的实现,接下来看看如何实现文件下载的功能。实现文件下载功能的方式也很多,这里只具体看看如何使用Struts2来实现文件下载。使用Struts2来实现文件下载,会用到它的stream类型的Result,这种Result最终会返回一个InputStream,只需要让这个InputStream能读到用户想要下载的文件即可。...2012-06-01 07:42:39 · 162 阅读 · 0 评论 -
《研磨struts2》第十四章 对Ajax的支持 之 14.1 Ajax基础
14.1 Ajax基础14.1.1 Ajax概述Ajax(Asynchronous JavaScript And XML)技术,通常翻译成“异步JavaScript和xml”,它能让应用程序以异步的方式连接到服务器,等待服务器处理后获取返回值,从而实现无需刷新页面就可以与后台通讯的方式。 Ajax技术其实是一个非常老的技术,2000年左右就已经有了,只不过一直没...2012-06-02 16:49:24 · 132 阅读 · 0 评论 -
《研磨struts2》第十四章 对Ajax的支持 之 14.2 Struts2对Ajax的支持
14.2 Struts2对Ajax的支持14.2.1概述Struts2对Ajax提供了非常好的支持,不但功能强劲,而且简单易用。 Struts2并没有自行开发新的Ajax框架,而是使用了目前比较流行的Ajax框架——Dojo和DWR,在他们的基础之上实现了很多常见的功能。同时,Struts2也可以通过插件的形式来使用JSON,从而使得Ajax的实现更加灵活方便。...2012-06-02 16:49:55 · 108 阅读 · 0 评论 -
《研磨struts2》第十四章 对Ajax的支持 之 14.3 Ajax JSP tags
14.3 Ajax JSP tags14.3.1概述为了使开发Ajax变得轻松惬意,Struts2提供了一些JSP Tags,通过这些自定义的标签库,使得开发人员无需掌握额外的知识即可开发Ajax的应用。 从Struts2.1开始,不再推荐使用Dojo的Plugin,而是改用Ajax的tags,包括:head:用来下载Dojo文件和相应的Javascript...2012-06-04 08:15:18 · 146 阅读 · 0 评论