
Struts2
文章平均质量分 81
「已注销」
这个作者很懒,什么都没留下…
展开
-
struts2之使用Filter作为控制器的MVC
MVC 设计模式概览 实现 MVC(Model、View、Controller) 模式的应用程序由 3 大部分构成: 模型(POJO(Plain Old Java Object)):封装应用程序的数据和业务逻辑视图(JSP):实现应用程序的信息显示功能控制器(Servlet、Filter):接收来自用户的输入,调用模型层,响应对应的视图组件 用户注册案例-...原创 2015-08-04 23:27:30 · 193 阅读 · 0 评论 -
struts2之消息处理与国际化
概述 在程序设计领域,把在无需改写源代码即可让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化。与国际化对应的是本地化,指让一个具备国际化支持的应用程序支持某个特定的地区。 Struts2 国际化是建立在 Java 国际化基础上的:1. 为不同国家/语言提供对应的消息资源文件2. Struts2 框架会根据请求中包含的<s:text name...原创 2015-08-13 19:36:56 · 121 阅读 · 0 评论 -
struts2之运行流程分析
struts2运行流程 相关的几个 API ActionMapping:Simple class that holds the action mapping information used to invoke a Struts action. The name and namespace are requiredActionMapper:When give...原创 2015-08-15 15:55:24 · 83 阅读 · 0 评论 -
struts2之输入验证
概述 一个健壮的 web 应用程序必须确保用户输入是合法、有效的。Struts2 的输入验证有两种方式: 1. 基于 XWork Validation Framework 的声明式验证:Struts2 提供了一些基于 XWork Validation Framework 的内建验证程序。使用这些验证程序不需要编程,只要在一个 XML 文件里对验证程序应该如何工作作出声...原创 2015-08-15 17:13:09 · 158 阅读 · 0 评论 -
struts2之输入验证小结
Struts2 输入的验证 1 验证分为两种: a) 声明式验证(*)>> 对哪个 Action 或 Model 的那个字段进行验证>> 使用什么验证规则>> 如果验证失败,转向哪一个页面, 显示是什么错误消息 b) 编程式验证 1 声明式验证的 helloworld 1) 先明确对哪一个 Act...原创 2015-08-15 17:45:19 · 99 阅读 · 0 评论 -
struts2之文件上传
表单的准备 要想使用 HTML 表单上传一个或多个文件1. 须把 HTML 表单的 enctype 属性设置为 multipart/form-data2. 须把 HTML 表单的method 属性设置为 post3. 需添加 <input type=“file”> 字段. Struts 对文件上传的支持 在 Struts 应用程序里, F...原创 2015-08-15 23:15:24 · 86 阅读 · 0 评论 -
struts2之文件下载
文件下载概述 在某些应用程序里, 可能需要动态地把一个文件发送到用户的浏览器中, 而这个文件的名字和存放位置在编程时是无法预知的 Stream 结果类型 Struts 专门为文件下载提供了一种 Stream 结果类型. 在使用一个 Stream 结果时, 不必准备一个 JSP 页面.Stream 结果类型可以设置如下参数: contentType:被...原创 2015-08-15 23:16:10 · 130 阅读 · 0 评论 -
struts2之表单重复提交问题
概述 表单的重复提交:若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮已经提交成功, 按 "回退" 之后, 再点击 "提交按钮".在控制器响应页面的形式为转发情况下,若已经提交成功, 然后点击 "刷新(F5)“重复提交的缺点:加重了服务器的负担可能导致错误操作. Struts2 解决表单重复提...原创 2015-08-16 12:31:04 · 176 阅读 · 0 评论 -
struts2之自定义拦截器
Struts2 拦截器 拦截器(Interceptor)是 Struts 2 的核心组成部分。Struts2 很多功能都是构建在拦截器基础之上的,例如文件的上传和下载、国际化、数据类型转换和数据校验等等。Struts2 拦截器在访问某个 Action 方法之前或之后实施拦截 Struts2 拦截器是可插拔的, 拦截器是 AOP(面向切面编程) 的一种实现.拦...原创 2015-08-16 12:32:10 · 102 阅读 · 0 评论 -
struts2零配置之helloworld
从 Struts 2.1 开始,Struts 可以使用 Convention 插件来支持零配置:Convention 插件完全抛弃配置信息,不仅不需要使用 struts.xml 文件进行配置,甚至不需要使用 Annotation 进行配置。而是完全根据约定来自动配置。 首先,让我们先来看一下基于convention-plugin实现的Struts"零配置"的HelloWorld。...原创 2015-08-16 23:01:35 · 111 阅读 · 0 评论 -
struts2零配置之convention约定规则
搜索 Action 搜索 Action: 对于 Convention 插件, 它会自动搜索位于 action, actions, struts, struts2 包下的所有 Java 类, Convention 会把如下两种 Java 类当成 Acition 处理所有实现了 Action 接口的 Java 类所有类名以 Action 结尾的 Java 类下面是符合 Co...原创 2015-08-16 23:35:28 · 183 阅读 · 0 评论 -
struts2零配置之注解
实际的开发过程中如果只使用struts2-convention-plugin约定,也许不能完全满足实际项目的需要。幸运的是struts2-convention-plugin支持使用注解覆盖默认约定,这样就使得配置变得相当灵活。 Convention 的 Annotation Conversion 插件使用 Annotation 来管理拦截器, 异常处理等相关配置. Con...原创 2015-08-17 00:04:48 · 112 阅读 · 0 评论 -
struts2之类型转换
从一个 HTML 表单到一个 Action 对象,类型转换是从字符串到非字符串。HTTP 没有 “类型” 的概念,每一项表单输入只可能是一个字符串或一个字符串数组。在服务器端,必须把 String 转换为特定的数据类型。在 struts2 中,把请求参数映射到 action 属性的工作由 params(com.opensymphony.xwork2.interceptor.Pa...原创 2015-08-13 19:35:23 · 134 阅读 · 0 评论 -
struts2之拦截器栈paramsPrepareParamsStack
拦截器栈paramsPrepareParamsStack概述 1. 拦截器栈paramsPrepareParamsStack中三个重点的拦截器params,prepare和modelDriven。 params:com.opensymphony.xwork2.interceptor.ParametersInterceptorprepare:com.opensympho...原创 2015-08-12 01:29:57 · 158 阅读 · 0 评论 -
struts2之用户注册案例
博文《struts2之使用Filter作为控制器的MVC》中使用Filter实现了用户注册案例,在此使用struts2改写,以此作为学习struts2的helloworld。 数据流图 搭建 Struts2 的环境 1. 下载struts2:http://struts.apache.org/2. 解压struts-2.3.15.3-all.zip3...原创 2015-08-04 23:32:59 · 185 阅读 · 0 评论 -
struts2之Struts2 概述
Struts2 概述 Struts2 是一个用来开发 MVC 应用程序的框架. 它提供了 Web 应用程序开发过程中的一些常见问题的解决方案: 对来自用户的输入数据进行合法性验证统一的布局可扩展性国际化和本地化支持 Ajax表单的重复提交文件的上传下载 Struts2 VS Struts1 在体系结构方面更优秀:类更少, 更高效: ...原创 2015-08-05 01:56:33 · 109 阅读 · 0 评论 -
struts2之struts.xml解读
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"&g原创 2015-08-05 02:13:08 · 111 阅读 · 0 评论 -
Struts2之Action详解
action VS Action 类 1. action:代表一个 Struts2 的请求。2. Action类:能够处理 Struts2 请求的类。 2.1 属性的名字必须遵守与 JavaBeans 属性名相同的命名规则。 2.2 属性的类型可以是任意类型,从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生。2.3 必须有一个不带参的构造器:通...原创 2015-08-06 19:53:25 · 214 阅读 · 0 评论 -
Struts2之Action详解2
关于 Struts2 请求的扩展名问题 1). org.apache.struts2 包下的 default.properties 中配置了 Struts2 应用个的一些常量2). struts.action.extension 定义了当前 Struts2 应用可以接受的请求的扩展名.3). 可以在 struts.xml 文件中以常量配置的方式修改 default.pro...原创 2015-08-07 01:52:27 · 122 阅读 · 0 评论 -
Struts2之值栈[ValueStack]
ValueStack(值栈) 贯穿整个 Action 的生命周期(每个 Action 类的对象实例都拥有一个 ValueStack 对象). 相当于一个数据的中转站. 在其中保存当前 Action 对象和其他相关对象. Struts 框架把 ValueStack 对象保存在名为 “struts.valueStack” 的请求属性中 在 ValueStack 对象的内部有两...原创 2015-08-09 16:27:21 · 106 阅读 · 0 评论 -
Struts2之OGNL
在 JSP 页面上可以可以利用 OGNL(Object-Graph Navigation Language: 对象-图导航语言) 访问到值栈(ValueStack) 里的对象属性.若希望访问值栈中 ContextMap 中的数据, 需要给 OGNL 表达式加上一个前缀字符 #. 如果没有前缀字符 #, 搜索将在 ObjectStack 里进行. property 标签 ...原创 2015-08-09 16:48:50 · 87 阅读 · 0 评论 -
struts2之异常处理
exception-mapping 元素 exception-mapping 元素: 配置当前 action 的声明式异常处理exception-mapping 元素中有 2 个属性exception: 指定需要捕获的的异常类型。异常的全类名result: 指定一个响应结果, 该结果将在捕获到指定异常时被执行, 既可以来自当前 action 的声明, 也可...原创 2015-08-09 17:02:59 · 100 阅读 · 0 评论 -
struts2之通用标签
property 标签 property 标签用来输出一个值栈属性的值 示例: 输出 Action 属性 customerId 的值: <s:property value=“customerId”/>输出 session 属性 userName 的值:<s:property value=“#session.userName”/>如果 v...原创 2015-08-09 22:03:52 · 121 阅读 · 0 评论 -
struts2之表单标签
概述 表单标签将在 HTML 文档里被呈现为一个表单元素使用表单标签的优点:表单回显对页面进行布局和排版标签的属性可以被赋值为一个静态的值或一个 OGNL 表达式. 如果在赋值时使用了一个 OGNL 表达式并把它用 %{} 括起来, 这个表达式将会被求值. 表单标签的共同属性 * 该属性只在没有使用 simple 主题时才可以使用. ...原创 2015-08-09 22:04:26 · 100 阅读 · 0 评论 -
struts2之用户注册案例[struts标签实现]
实现一个用户注册的功能,需要的注册信息如下: 其中,部门和角色的信息是从服务器获取的。原创 2015-08-11 20:36:38 · 216 阅读 · 0 评论 -
struts2零配置之@Action和@Actions注解
@Action和@Actions注解详解 package org.rabbitx.web.struts2.annotation;import org.apache.log4j.Logger;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.conventi...原创 2015-08-17 01:02:24 · 303 阅读 · 0 评论