自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 收藏
  • 关注

转载 《研磨struts2》第九章 国际化 之 9.6 指定语言信息的不同方式

9.6  指定语言信息的不同方式9.6.1概述在本节开始之前,请读者把包级别的国际化信息删掉,仅保留全局级别的国际化信息。       在9.3.3小节中,已经学过修改、使用浏览器语言设置的方式了,这里就不赘述了。接下来看看其它的方式9.6.2 Struts2的常量设置还可以使用Struts2的常量设置来覆盖浏览器的语言设置。比如前面的示例,在struts.

2012-07-27 09:25:00 475

转载 《研磨struts2》第九章 国际化 之 9.5 Struts2访问国际化信息的不同方式

9.5  Struts2访问国际化信息的不同方式为了示例的简洁,删除在9.4节中添加的I18NAction_zh_CN.properties文件和package.properties文件,只保留全局级国际化信息资源文件。并在message.properteis中增加一个带有参数的国际化信息。 java代码:查看复制到剪贴板打印labela =

2012-07-27 09:24:38 373

转载 《研磨struts2》第九章 国际化 之 9.4 资源文件读取顺序

9.4  资源文件读取顺序在进入具体示例之前,先来写一个Action,然后配置9.3.2节中的jsp作为这个Action的结果页面,好方便本节知识的示范。       这个Action非常的简单,什么都不做,只是让execute方法返回SUCCESS即可。示例代码如下: java代码:查看复制到剪贴板打印package cn.java

2012-07-27 09:24:15 464

转载 《研磨struts2》第九章 国际化 之 9.3 Struts2中的国际化入门

9.3  Struts2中的国际化入门9.3.1引用国际化信息资源文件要使用Struts2来实现国际化的支持,同样先来准备国际化信息资源文件,把三个国际化资源信息文件恢复到最初始的状态:(1)默认语言文件:message.properties java代码:查看复制到剪贴板打印labela = labela in zh_CN

2012-07-27 09:23:52 460

转载 《研磨struts2》第九章 国际化 之 9.2 Java内置的国际化

9.2  Java内置的国际化Struts2的国际化也不是无本之木,它依赖于Java内置的国际化机制,只是在Java内置的国际化机制的基础上增加了跟Struts2其他组件的融合,使得其他组件也可以非常方便的使用国际化。9.2.1 Java内置的国际化入门1:准备国际化信息文件Java内置的国际化,以java.util.ResourceBundle和java.util

2012-07-27 09:23:30 548

转载 《研磨struts2》第九章 国际化 之 9.1 概述

9.1  概述国际化(Internationalization),通俗点讲就是让软件实现对多种语言的支持,可以通过简单的设置让软件支持的语言从一种切换到另一种。当然,最直观的就是界面显示了,比如一个实现了国际化的软件,可以很容易的从英文界面切换成中文界面。在日常工作中也常见到国际化的软件,比如Eclipse就是多语言的,只要安装了相应的语言包,在启动的时候指定语言参数就可以实现软件

2012-07-27 09:23:06 243

转载 《研磨struts2》第八章 Struts2的Taglib 之 8.4 UI标签

8.4  UI标签8.4.1概述UI标签是用来生成Web界面,或者为Web界面提供某些功能支持的标签,比如:表单标签就是把各种途径获取的需要展示的数据,通过动态生成HTML的形式展示到界面上。UI标签分成如下几种:Form Tags:表单标签,包含所有可以用在Form表单里面的标签Non-Form UI Tags:非表单标签,主要包含错误展示、组件等Ajax Tags:用来支持

2012-07-27 09:22:35 889

转载 《研磨struts2》第八章 Struts2的Taglib 之 8.3 控制标签

8.3  控制标签控制标签关注程序的运行流程,比如用if/else来进行分支控制,用iterator来进行循环控制。接下来就来学习Struts2的控制标签。8.3.1 if、elseif与else标签1:if标签的功能:       类似于Java程序中的if,用来表达分支判断。   else标签的功能:       类似于Java程序中的else。

2012-07-27 09:22:04 432

转载 《研磨struts2》第八章 Struts2的Taglib 之 8.2 数据标签

8.2  数据标签数据标签更关注如何从值栈上取值或者向值栈赋值。8.2.1 property标签1:功能:用来输出OGNL表达式的值。2:属性       property标签的主要属性:value:用来获取值的OGNL表达式,如果value属性值没有指定,那么将会被设定为top,也就是返回位于值栈最顶端的对象。default:如

2012-07-27 09:21:38 288

转载 《研磨struts2》第八章 Struts2的Taglib 之 8.1 Struts2的Taglib概述

8.1  Struts2的Taglib概述8.1.1概述Struts2自带了一套非常强大的标签库,不仅自身功能强大,而且与Struts2中的其它部分无缝结合。在学习之前,先来简要回忆一下标签到底是干什么的?估计大多数朋友都使用过JSTL,那自然熟悉JSTL的核心标签,也就是c标签。在JSP页面上使用标签,可以分离JSP上的Java代码与HTML。其中HTML用来管理把数据展

2012-07-27 09:21:15 251

转载 《研磨struts2》第七章 值栈和OGNL 之 7.4 ActionContext和ServletActionContext

7.4  ActionContext和ServletActionContext7.4.1  再探ActionContext前面已经了解到ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,我们也称之为广义值栈。       Struts2在每次执行Action之前都会创建新的ActionContext,在同一个线程里Acti

2012-07-27 09:20:48 295

转载 《研磨struts2》第七章 值栈和OGNL 之 7.3 使用OGNL访问复杂对象

7.3  使用OGNL访问复杂对象7.3.1  访问域对象通过ognl访问域对象,这件事情其实在好早以前,我们就已经做过了,只是那个时候不知道罢了,还是来示例一下。(1)先来准备一个域对象,很简单,只有两个属性,代码示例如下: java代码:查看复制到剪贴板打印package cn.javass.ognl.vo;  pub

2012-07-27 09:20:25 368

转载 《研磨struts2》第七章 值栈和OGNL 之 7.2 OGNL

7.2  OGNL7.2.1  OGNL概述OGNL是对象图导航语言Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。在

2012-07-27 09:20:00 278

转载 《研磨struts2》第七章 值栈和OGNL 之 7.1 值栈

7.1  值栈7.1.1  值栈是什么简单的说:值栈是对应每一个请求对象的轻量级的内存数据中心。Struts2中一个很激动人心的特性就是引入了值栈,在这里统一管理着数据,供Action、Result、Interceptor等Struts2的其他部分使用,这样一来,数据被集中管理起来而不会凌乱,大大方便了程序编写。Struts2中关于值栈的另外一个很激动人心的特性就是

2012-07-27 09:19:30 327

转载 《研磨struts2》 第六章 拦截器 之 6.4 两个有用的拦截器

6.4  两个有用的拦截器6.4.1  更强大的logger拦截器在学习了这么多拦截器的理论知识过后,来示范两个真实项目中用得到的拦截器。先来看看更强大的logger拦截器。Struts2自带的logger拦截器只是打印出了Action所对应的URL以及执行的方法名称,这对实际开发来说是肯定不够的。       实际开发中为了调试方便,要记录的信息比较多,通常需要把

2012-07-26 09:47:22 355

转载 《研磨struts2》 第六章 拦截器 之 6.3 自定义的拦截器

6.3  自定义的拦截器6.3.1  什么是自定义的拦截器所谓自定义的拦截器,就是由我们自己定义并实现的拦截器,而不是由Struts2定义好的拦截器。虽然Struts2的预定义拦截器已经满足了大多数情况的需要。但在有些时候,我们可能会根据项目的实际需要而自定义一些拦截器,来实现一些特别的功能。       比如,我们可能认为Struts2预置的logger拦截器功能

2012-07-26 09:46:49 433

转载 《研磨struts2》 第六章 拦截器 之 6.2 预定义的拦截器

6.2  预定义的拦截器6.2.1  预定义的拦截器一起来看看Struts2中已经定义好的预定义拦截器。Struts2的预定义拦截器都定义在struts-default.xml文件的struts-default包内,定义如下: java代码:查看复制到剪贴板打印              "alias" class="com.op

2012-07-26 09:46:24 1112

转载 《研磨struts2》 第六章 拦截器 之 6.1 拦截器基础

6.1  拦截器基础6.1.1  拦截器是什么拦截器(Interceptor)是Struts2最强大的特性之一,它是一种可以让你在Action执行之前和Result执行之后进行一些功能处理的机制。       来回顾一下官方给出的Struts2系统架构图中关于拦截器的部分,如下图所示:图6.1 拦截器示意图       这个图清晰的描述出了拦截器的运

2012-07-26 09:45:31 224

转载 《研磨struts2》第五章 Result 之 5.7 自定义Result

5.7  自定义Result5.7.1  什么是自定义Result所谓自定义Result,就是由我们自行开发的Result,而不是使用由Struts2预先定义好的Result。       在实际开发中,需要自定义Result的机率并不大,因为常见的各种页面展示技术,Struts2都已经预定义好相应的Result了,无需我们自行开发。如果我们要自定义Result,要么就是包

2012-07-26 09:45:02 279

转载 《研磨struts2》第五章 Result 之 5.6 PreResultListener

5.6  PreResultListener5.6.1  什么是PreResultListener在实际开发当中,常常需要在Action执行完毕后,而Result还没有开始执行的时候,做一些功能处理,比如异常处理,那么该怎么做呢?       这就需要使用PreResultListener了。看名字就知道,这是一个“Listener”,也就是一个监听器,用来执行事件监听的。

2012-07-26 09:44:37 290

转载 《研磨struts2》第五章 Result 之 5.5 Struts2的异常映射

5.5  Struts2的异常映射5.5.1  异常映射基础在Action中execute方法的方法签名为public String execute() throws Exception,这样,Action可以抛出任何Exception,那么,Exception抛给谁呢?1:自己实现异常处理来做一个简单的试验,在Action的方法中这样写: java

2012-07-26 09:43:54 232

转载 《研磨struts2》第五章 Result 之 5.4 使用通配符

5.4  使用通配符5.4.1  使用通配符前面学过,可以在定义元素的name属性的时候使用通配符,使这个元素不仅仅可以匹配一个URL,还可以匹配一类URL。而action的class属性和method属性能使用通配符的值。如果使用以下配置: java代码:查看复制到剪贴板打印"*_*" class="cn.javass.action

2012-07-26 09:43:26 239

转载 《研磨struts2》第五章 Result 之 5.3 全局Result

5.3  全局Result5.3.1  全局Result概述以前的元素都是作为的子元素出现的,这被称为局部Result,只可以由本元素访问。要是有一些Result需要由多个Action共用,比如,系统的每个页面都会判断用户是否登陆,如果没有登陆,那么都要跳转到登录页面。这种情况该怎么办呢?这个时候,就可以配置全局Result,让这多个Action共享这些全局的Res

2012-07-26 09:42:44 362

转载 《研磨struts2》第五章 Result 之 5.2 预定义的Result

5.2  预定义的Result5.2.1  预定义的ResultType在Struts2中,预定义了很多ResultType,其实就是定义了很多展示结果的技术。Struts2把内置的都放在struts-default包中。struts-default包就是我们配置的包的父包,在第4章已经看到这个包定义在struts2-core-2.1.8.1.jar包中的根目录下的文件struts

2012-07-26 09:41:55 1381

转载 《研磨struts2》第五章 Result 之 5.1 Result基础

5.1  Result基础5.1.1  Result是什么和能干什么简单的说,Result是Action执行完后返回的一个字符串,它指示了Action执行完成后,下一个页面在哪里。具体页面在哪里,是在struts.xml里面配置的。就是每个元素里面,配置的子元素,比如: java代码:查看复制到剪贴板打印"hellowor

2012-07-26 09:41:19 224

转载 《研磨struts2》第四章 Action 之 4.5 Action的其它重要知识

4.5  Action的其它重要知识4.5.1  Action的生命周期       Struts2的Action的生命周期是:Struts2为每个请求都重新初始化一个Action的实例。可以稍微改造一下代码来验证一下。1:给HelloWorldAction加上一个public无参的构造方法,在里面输出一句话。大家都知道,一个Java类如果没有写构造方法,那么会

2012-07-26 09:40:33 253

转载 《研磨struts2》第四章 Action 之 4.4 Action的配置

4.4  Action的配置4.4.1  的配置通过上面的示例可以看出,Action需要在struts.xml中配置才可以使用,而且Action应该配置成为元素的子元素,那么元素的功能是什么呢?       元素可以把逻辑上相关的一组Action、Result、Intercepter等元素封装起来,形成一个独立的模块,package可以继承其他的package,也可以作为父包被其他的p

2012-07-26 09:40:10 266

转载 《研磨struts2》第四章 Action 之 4.3 Action的数据

4.3  Action的数据4.3.1  数据来源在helloworld示例里面,在运行Action的execute方法的时候,你会神奇般的发现,Action的属性是有值的,而这正是Action进行请求处理所需要的数据。那么,这些数据从何而来呢?       很明显,这些数据就是你在登录页面填写的数据,换句话说,这些数据来源于用户请求对象,也就是request对象。

2012-07-26 09:39:42 647

转载 《研磨struts2》第四章 Action 之 4.2 Action的实现

4.2  Action的实现4.2.1  POJO的实现在Struts2中,Action可以不实现任何特殊的接口或者继承特殊的类,仅仅是一个POJO(Plain Old Java Object,简单的Java对象)就可以,但是要有一个公共的为空参的构造方法,其实缺省的构造方法就可以,还要有一个execute方法,定义格式如下: java代码:查看

2012-07-26 09:38:46 473

转载 《研磨struts2》第四章 Action 之 4.1 Action基础

4.1  Action基础4.1.1  Action是什么在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元。也就是说,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理,因此说一个Action类代表了用户的一次请求或调用。

2012-07-26 09:38:01 282

转载 《研磨struts2》第三章 Struts2的架构和运行流程 之 3.3 Struts2的核心概念

3.3  Struts2的核心概念3.3.1  核心概念在上面的运行流程图里,看到了很多Struts2的模块。本节将简要描述一下那些与实际开发息息相关的概念。1:FilterDispatcher       Struts2的前端控制器,也是Struts2的MVC中的控制器部分。在实际开发中,只需要在web.xml中配置一次即可。但是一定要注意,如果还有其他的过滤器,

2012-07-20 13:03:42 420

转载 《研磨struts2》第三章 Struts2的架构和运行流程 之 3.2 Struts2的运行流程

3.2  Struts2的运行流程3.2.1  运行流程先回忆一下在HelloWorld中,我们做了什么:在web.xml中配置了Struts2的过滤器写了一个Action类,名称为HelloWorldAction在struts.xml中配置了这个Action类写了两个页面,一个是登录页面,一个是欢迎页面只做了这么点事情,就可以在Struts2的帮助

2012-07-20 13:03:16 474

转载 《研磨struts2》第三章 Struts2的架构和运行流程 之 3.1 Struts2的系统架构

3.1  Struts2的系统架构3.1.1  Struts2的系统架构在上一章通过HelloWorld示范了Struts2的基本开发过程,这还远远不够,因为我们都知道,在使用一个框架的时候,除了要掌握如何使用框架进行开发外,最好还要知道框架做了些什么,以及基本的运行流程,这对以后的学习是很有帮助的。那么接下来就来看看Struts2的系统架构和内部运行流程。

2012-07-20 13:02:15 347

转载 《研磨struts2》 第二章 Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始

2.5  开发中的一些小窍门2.5.1  概述通过以上内容的学习,应该基本了解了Struts2的开发流程,但是,有一些细节功能你并没有看到。比如,在struts.xml中,需要注册Action类的全类名,这个全类名是哪里来的?是完全手写的,还是拷贝的?怎么拷贝的?大家都知道,好的操作方式不容易出错,而且开发效率也更高。因此,特别准备了这一小节的知识,在这里来讲述在Hello

2012-07-20 13:01:39 313

转载 《研磨struts2》 第二章 Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始

2.4  Struts2的HelloWorld2.4.1  概述在上一个小节中,使用Model2来实现了一个简单的登陆功能,在本节里面,使用Struts2来实现同样的功能。Model2和Struts2都实现了MVC,因此Struts2的实现和上面Model2的实现是类似的。       前面讲到Struts2是一个基于MVC的轻量级框架,那就以MVC为突破口来分析,看看St

2012-07-20 13:00:51 510

转载 《研磨struts2》 第二章 Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始

2.3.Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始2.3.1  起点概述考虑到大部分朋友都是有一定经验的web开发者,因此从Servlet+JSP+JavaBean实现MVC开始,再过渡到Struts2的开发,这样能让大家把以前的知识自然迁移到Struts2上,使得学习曲线变得平滑。说明一下,由于本机的8080端口被别的

2012-07-20 12:59:53 702

转载 《研磨struts2》 第二章 Struts2的HelloWorld 之 概述

2.1  概述2.1.1  功能概述通过上一章的讲述,明白了Struts2是什么,有什么以及能干什么,接下来就该来讨论怎么做的问题了,也就是讨论如何使用Struts2来开发基于MVC的web应用。按照惯例,学习一个新的东西,都是从HelloWorld起步的,这里也不例外,本章就一起来看一个Struts2的HelloWorld实现。本章会从搭建Struts2的开发环境

2012-07-20 12:58:57 246

转载 《研磨struts2》 第一章 Struts2概述 之 Struts2和MVC

1.3.1  Struts2和MVC前面讲到Struts2是一种基于MVC的Web应用框架,下面就来看看Struts2和MVC的关系。当然,由于我们还没有深入学习Struts2的各部分功能,这里只是先给大家讲一下Struts2是如何跟MVC对应的,其中一些名词所代表的具体功能,比如前端控制器(FilterDispatcher)、动作(Action)、结果(Result)等,在以

2012-07-20 12:58:17 370

转载 《研磨struts2》 第一章 Struts2概述 之 Struts2基础

1.2    Struts2 基础1.2.1  Struts1时代随着时间的推移,Servlet+JSP+JavaBean模型暴露出了它的缺点:流程凌乱:Servlet在完成对用户请求的处理后,下一个页面是谁?如何跳转过去?这些都是在Servlet里面直接写代码来完成的。导致Servlet既要处理请求,还要负责页面的流程,使得Servlet功能不够单一,更要命的是很难整

2012-07-20 11:27:25 618

转载 《研磨struts2》 第一章 Struts2概述 之 MVC模式

1.1  MVC模式1.1.1  MVC模式简介MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率。       在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封

2012-07-20 11:26:46 403

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除