- 博客(88)
- 收藏
- 关注
研磨struts2 目录贴
1.1 《研磨struts2》 第一章 Struts2概述 之 MVC模式1.2 《研磨struts2》 第一章 Struts2概述 之 Struts2基础1.3 《研磨struts2》 第一章 Struts2概述 之 Struts2和MVC1.4 《研磨struts2》 第二章 Struts2的HelloWorld 之 概述1.5 《研磨struts2》 第二章 Stru...
2012-08-24 12:12:13 313
《研磨struts2》A.2 struts.properties的配置 之 A.2.1 概述
A.2.1 概述 如果我们希望覆盖在default.properties文件里面定义的默认配置,那就可以定义struts.properties文件,在里面设置我们需要的值,当然现在也可以在struts.xml中配置<constant>元素来实现同样的功能。 如果配置struts.properties文件,需要把它放置到当前的classpath下...
2012-07-09 12:10:59 151
《研磨struts2》附录A Struts2的配置 之 A.1 struts.xml的配置
A.1 struts.xml的配置A.1.1 概述前面已经分散学习了Struts2的各部分知识,相应的配置也分散到相关部分去学习了,这里再把这些配置的知识梳理和总结一下,以利于大家更好的掌握。 Struts2的配置文件主要是struts.xml文件,以前还有一个struts.properties文件,现在struts.properties文件的内容基本上都可以...
2012-07-09 12:10:03 165
《研磨struts2》第二十一章 零配置 之 21.3 通过注解来实现零配置
21.3 通过注解来实现零配置21.3.1 概述在实际开发中,光是简单的通过默认的方式来进行配置,是满足不了实际项目的需要的,这就需要使用注解,来进一步控制程序各个部分的对应关系。就其实质,就是把原本在struts.xml中的配置信息,通过使用注解来把这些信息搬移到Action类上进行配置。所以零配置并不是不配置,只是不在struts.xml里面配置而已。21....
2012-07-06 08:07:43 130
《研磨struts2》第二十一章 零配置 之 21.2 约定大于配置
21.2 约定大于配置21.2.1 约定大于配置的HelloWorld先来做一个示例,让大家体会一下什么是约定大于配置。1:Convention Plugin从Struts2.1版本起,Struts2官方就推荐使用Convention Plugin替换Codebehind Plugin来实现零配置。相对Codebehind Plugin而言,Conventio...
2012-07-05 10:44:34 89
《研磨struts2》第二十一章 零配置 之 21.1 概述
21.1 概述21.1.1 零配置概述在前面的学习中,把Struts2的配置信息都放在了struts.xml中,这种方式简单有效而且使用起来也非常方便。但是,还有没有更简洁得方式呢?Struts2提供了按照约定来自动配置的方式,或者使用Java注解来替代struts.xml进行配置的方式,从而可以实现零配置。先来看看struts.xml中的action都能配置些什么?...
2012-07-05 10:44:04 93
《研磨struts2》第二十章 整合SiteMesh 之 20.3 整合Struts2与SiteMesh
在Struts2中使用SiteMesh的时候,SiteMesh是以Struts2插件的形式出现的。单独使用SiteMesh需要做好多事情:准备资源、引用过滤器、准备模板页面、准备被装饰页面、结合模板页面和被装饰页面。在整合Struts2与SiteMesh的时候,准备模板页面和准备被装饰页面基本上没有变化,这里就不过多叙述了。接下来从其他几个方面,包括:准备资源、引用过滤器、结合模板页...
2012-07-04 08:15:45 105
《研磨struts2》第二十章 整合SiteMesh 之 20.2 单独使用SiteMesh
20.2 单独使用SiteMesh20.2.1SiteMesh下载需要到OpenSymphony的官网http://www. opensymphony.com/sitemesh/download.action下载相关的资源,现在SiteMesh的最新版本是2.4.1,下载的时候有四种选择:JAR:仅仅下载SiteMesh的jar包。Full:下载SiteMes...
2012-07-03 08:00:15 96
《研磨struts2》第二十章 整合SiteMesh 之 20.1 调整应用的风格
20.1 调整应用的风格对于一个企业级的Web应用而言,页面展示需要有统一的风格,比如统一的配色、页头显示企业LOGO、页脚显示版权信息等等。在实际的开发中应该怎么做呢?统一的配色可以通过引用相同的CSS,然后在CSS中进行调整。统一的页头和页脚呢?很显然,每个页面都拷贝相同的HTML代码这个做法是绝不可行的,因为如果页头、页脚的内容发生变化的话,所有的页面都要进行修改了。因...
2012-07-03 07:59:43 107
《研磨struts2》19.2 使用execAndWait拦截器模拟进度条 之 19.2.1 模拟长时间运行的Action ...
19.2.1模拟长时间运行的Action 为了示例,首先来模拟一个运行时间长的Action:在这个Action中首先定义了一个int类型的progress属性及其getter/setter,用来向外界返回当前任务的完成进度。在execute方法中,让Action所在的线程在每次循环的时候sleep一秒钟,每次循环把进度加十。这样,随着外界不断访问progress属性,...
2012-07-02 12:24:01 120
《研磨struts2》第十九章 进度条 之 19.1 使用“进度条”告知用户进度
19.1 使用“进度条”告知用户进度 在第十七章中,使用令牌来解决了用户重复提交的问题。如果在运行一个长时间运行的任务的时候,使用“进度条”的方式来告知用户任务运行的进度,那么,用户也就不会频繁的点击按钮,从而导致重复提交了。进度条在C/S的程序中相当常见,但是对于无状态的HTTP协议,该怎样来实现进度条的功能呢?Struts2提供了execAndWai...
2012-07-02 12:23:24 99
《研磨struts2》第十八章 结合JFreeChart 之 18.3 Struts2结合JFreeChart
18.3 Struts2结合JFreeChart18.3.1构建结合环境有了前面的基础,接下来可以来把Struts2与JFreeChart结合使用了。先来构建结合开发的环境,很简单,只有一步工作,把struts2-jfreechart-plugin-2.1.8.1.jar拷入到web工程的lib下就可以了。18.3.2 Struts2结合JFreeChart来画饼图...
2012-06-28 12:12:07 84
《研磨struts2》第十八章 结合JFreeChart 之 18.2 Struts2插件概述
Struts2并没有求大求全,企图把所有的功能都包含进来,而是设计了一个灵活、可扩展的插件体系,让所有的人都可以以做插件的方式,为Struts2添加新的功能,这也是Struts2非常吸引人的地方之一。来简单的认识一下Struts2的插件。打开Struts2 下载包中的lib目录struts-2.1.8.1\lib,会发现,这里面以struts2作为文件名开头的文件可以被分...
2012-06-28 12:11:36 92
《研磨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 136
研磨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 239
《研磨struts2》第十七章 防止重复提交 之 17.3 更强大的tokenSession拦截器
17.3 更强大的tokenSession拦截器回顾一下上面<s:token/>标签和token拦截器连用,解决了重复提交问题,用法极其简单:Action引用token拦截器,<s:form/>标签内加一个<s:token/>标签,两句话就足以概括,一分钟就足以做完。但是结果稍稍有点遗憾:对于一次正常提交和一次重复提交,使用token拦截器会使...
2012-06-18 13:46:12 110
《研磨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 144
《研磨struts2》第十七章 防止重复提交 之 17.1 什么是重复提交
17.1 什么是重复提交所谓重复提交,就是用户在页面多次点击提交按钮,或者通过不断刷新页面,把已经提交过的数据多次向后台提交。重复提交对于查询类的功能,问题还不是太大,但是对于新增或是修改类的功能,就有可能凭空的出现很多同样信息的重复数据,从而导致业务功能出现错误。用一个实例来让大家体会一下重复提交的问题,来实现一个订单新增的功能,订单号一般都是由后台自动生成,前台页面只要传...
2012-06-18 13:45:06 140
《研磨struts2》 系列文章汇总贴
《研磨struts2》 前言《研磨struts2》 第一章 Struts2概述 之 MVC模式《研磨struts2》 第一章 Struts2概述 之 Struts2基础《研磨struts2》 第一章 Struts2概述 之 Struts2和MVC《研磨struts2》 第二章 Struts2的HelloWorld 之 概述《研磨struts2》 第二章 Struts2的H...
2012-06-15 07:57:52 608 1
《研磨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 124
《研磨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 120
《研磨struts2》第十六章 单元测试 之 16.1 概述
16.1 概述测试是软件项目开发过程中非常重要的一环,大家耳熟能详的一些软件工程的理论,比如极限编程(XP),测试驱动开发(Test Driven Develop)等等,都特别强调了测试的重要性。测试又分为很多种:单元测试、集成测试、回归测试、性能测试、压力测试等等。对于程序人员来说,最起码要负责单元测试的工作,程序人员写好了自己所负责部分的代码,在交出代码之前一定要进行单元测试...
2012-06-14 13:22:03 100
《研磨struts2》第十五章 整合Spring 之 15.3 自动装配
15.3 自动装配15.3.1自动装配Spring支持自动装配的方式,也就是如果等待注入的对象所提供的属性,与Spring的配置中已经存在的Bean的定义之间有某种关联的话,就可以不用写<property>元素来手工实现依赖注入的装配了,而是改由Spring来自动装配。Spring支持多种自动装配的策略:byName:根据对象的属性名称来自动装配。简单...
2012-06-13 13:45:36 110
《研磨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 101
《研磨struts2》第十五章 整合Spring 之 15.1 概述
15.1 概述15.1.1应用程序的分层在前面学习了Struts2中的各个核心技术和多种组件,但是,在真正做项目的时候,Struts2只是帮我们处理Web层的日常任务和常见问题,那么,其他的部分呢? 在实际项目开发的时候,通常把程序划分成很多层次,也就是分层开发,比如大家熟悉的三层开发:表现层、逻辑层、数据层,它们的职责分别是:表现层:展示数据、人机交互、...
2012-06-13 13:43:18 76
《研磨struts2》第十四章 对Ajax的支持 之 14.4 使用JSON插件
14.4 使用JSON插件14.4.1 JSON基础JSON(JavaScript Object Natation),它是一种轻量级、基于文本、语言无关的数据交换格式,类似于XML,是一种结构化数据串行化的文本格式,常常用于服务器与JavaScript之间的数据交换上。 JSON是从ECMAScript语言标准衍生而来的,定义了一套简单的格式化规则,JSON可以...
2012-06-05 14:18:40 177
《研磨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 129
《研磨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 101
《研磨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 117
《研磨struts2》第十三章 文件上传下载 之 13.2 文件下载
13.2 文件下载13.2.1概述前面学习了文件上传的实现,接下来看看如何实现文件下载的功能。实现文件下载功能的方式也很多,这里只具体看看如何使用Struts2来实现文件下载。使用Struts2来实现文件下载,会用到它的stream类型的Result,这种Result最终会返回一个InputStream,只需要让这个InputStream能读到用户想要下载的文件即可。...
2012-06-01 07:42:39 155
《研磨struts2》第十三章 文件上传下载 之 13.1 文件上传
13.1 文件上传13.1.1 概述在开发基于Web的应用的时候,经常会碰到需要实现文件上传、下载的功能,比如编辑某个商品,需要给它上传一个图片等等。不使用Struts2的话,可以有很多种方式来实现文件上传,比如使用Apache的Common-FileUpload等。但是这些传统的方式,实现起来非常麻烦,需要写很多代码来进行控制。现在使用Str...
2012-05-31 13:09:54 132
《研磨struts2》第十二章 CRUD综合运用 之 12.6 加入拦截器
12.6 加入拦截器12.6.1 回顾拦截器拦截器是Struts2的核心概念,可以在Action运行之前或Result运行之后执行一些共通的任务。虽然学过了,但是还从来没有使用过,接下来,我们就来为这个示例添加一个自定义的拦截器,实现如下的功能:可以打印出所调用的Action,调用Action的哪个方法,所有的request参数,以及最后要跳转到哪个页面。这样有利于调试,...
2012-05-31 07:34:32 121
《研磨struts2》第十二章 CRUD综合运用 之 12.5 加入验证
12.5 加入验证12.5.1 回顾验证框架现在可以使用Struts2的验证框架,在真正调用Action的处理方法之前,来验证用户输入的信息是否符合要求。 使用验证框架要考虑四点:在哪儿指定验证信息?最常见的是在Action的同包下建立Action名- validation.xml,但是,现在的UserAction同时负责响应多种请求,所以,要用A...
2012-05-30 07:52:46 108
《研磨struts2》第十二章 CRUD综合运用 之 12.4 加入国际化信息
12.4 加入国际化信息12.4.1 回顾国际化信息接下来给上面的示例加上对国际化信息的支持。先来回忆一下国际化信息的基本知识,国际化信息的知识分成三大部分:如何配置国际化信息?l 全局级别。在struts.xml中配置常量struts.custom.i18n.resources,来指定国际化文件的名字。l Action级别...
2012-05-30 07:52:20 157
《研磨struts2》第十二章 CRUD综合运用 之 12.3 使用Struts2来实现表现层
2.3 使用Struts2来实现表现层12.3.1 将一组相关的Action类合成一个在前面学习的时候,每个Action类都只对应一个单独的web请求,那么,这样做会带来什么问题呢? 先想一下,用户在添加页面上点击添加按钮之后,会发生什么事呢?Struts2会提交到负责添加的Action中,这个Action只是接收前一个页面传过来的数据,然后把它填入数据库就可...
2012-05-29 08:00:46 138
《研磨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 2430
《研磨struts2》第十二章 CRUD综合运用 之 12.1 概述
《研磨struts2》第十二章 CRUD综合运用 之 12.1 概述 收藏浏览(132)|评论(0) 交流分类:Java|笔记分类: 研磨struts2 编辑 | 删除 | 锁定 12.1 概述12.1.1 功能简介在前面的章节中,已经学习了Struts2的绝大多数核心知识。在这一章中,将使用一个简单的用例,来对前面的知识进行综合运用,好让大家融会贯通这些知识。...
2012-05-28 07:52:56 110
《研磨struts2》第十一章 类型转换 之 11.4 类型转换器引用方式
11.4 类型转换器引用方式11.4.1全局级类型转换器引用在上一节中,使用的就是全局级类型转换器引用。简单回顾一下,在src下建立一个xwork-conversion.properties文件,这个文件中用“全类名=这个类对应的类型转换器全类名”,来建立类和类型转换器的关系。示例: java代码:查看复制到剪贴板打印cn.javass.co...
2012-05-28 07:52:31 93
《研磨struts2》第十一章 类型转换 之 11.3 自定义类型转换器
11.3 自定义类型转换器11.3.1概述虽然内建类型转换器能满足绝大多数的需求,但是,有的时候还是需要使用自定义类型转换器来实现特定的需求。还是用前面的长方形来说明,如果用两个文本框分别输入长方形的高和宽,整个类型装换都没有问题,它可以工作的很好。但是,如果我们想在一个文本框内同时输入宽和高(width:height),形如16:9,这个时候就需要自定义类型转换器了。...
2012-05-26 09:19:21 102
《研磨struts2》第十一章 类型转换 之 11.2 内建类型转换器
11.2 内建类型转换器Struts2内建的类型转换器能处理绝大多数的需求,只有极特殊情况才需要自定义类型转换器。在这一节中就一起来看看Struts2的内建类型转换器都可以完成哪些工作。11.2.1简单类型Struts2已经内置了基本数据类型及其包装类和其他一些常见的用于表示数字/日期类型的类型转换器,包括:int/Integer:整数型short/Short:短...
2012-05-26 09:18:54 98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人