Struts2
恒奇恒毅
Javaer
展开
-
SSH:准备项目环境
1,新建工程,类型为Web Project,设置默认编码为UTF-8,并创建如下文件夹 1,Source Folder 1,src 项目源码 2,config 配置文件 3,test 单元测试 2,普通文件夹 1,WebRoot/style css与图片等文件转载 2015-12-09 08:19:30 · 407 阅读 · 1 评论 -
Struts2:访问servlet三大域request/session/application属性
第一种:伪访问,通过ActionContext,将属性放入Map中,Struts2的拦截器会自动转换。public String scope() throwsException{ ActionContextctx =ActionContext.getContext(); ctx.getApplication().put("app", "应用范围");//往ServletCont转载 2015-11-30 10:13:30 · 714 阅读 · 0 评论 -
Struts2:文件上传下载
文件上传:Struts2的文件上传建立在jarkata或者cos项目之上的,通过fileupload拦截器提供了更高层次的抽象,把文件直接当成一个域。第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。第二步:把form表的en转载 2015-11-30 10:17:10 · 336 阅读 · 0 评论 -
Struts2:入门
Struts2与Struts1比较,主要struts2表现出以下优点:1> 在软件设计上Struts2没有像struts1那样跟Servlet API和struts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和struts API。Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。这种无侵入式设计就使得测试非常容易。pub转载 2015-11-30 09:34:32 · 479 阅读 · 2 评论 -
Struts2:各种Result
helloworld" class="cn.xsy.action.HelloWorldAction"> /WEB-INF/page/hello.jspresult配置类似于struts1中的forward,但struts2中提供了多种结果类型,常用的类型有:dispatcher(默认值,内部转发)、 redirect(重定向,资源不能放在WEB-INFO中)、redirectAc转载 2015-11-30 09:53:12 · 433 阅读 · 1 评论 -
Struts2:国际化
Struts2的国际化基于java的国际化。1.准备资源文件,资源文件的命名格式如下:baseName_language_country.propertiesbaseName_language.propertiesbaseName.properties其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家。如转载 2015-11-30 11:23:04 · 290 阅读 · 1 评论 -
Struts2:访问不同的方法
通过动态方法调用如果Action中存在多个方法时,我们可以使用!+方法名调用指定方法。如下:public class HelloWorldAction{ privateString message; .... publicString execute() throws Exception{ this.message = "我的第一个struts2应用";转载 2015-11-30 10:02:38 · 769 阅读 · 0 评论 -
Struts2:Struts标签
本来使用JSTL完全就能满足项目的需要,还是sun的标准技术,具有更好的移植性,使用Struts标签的一个最主要的功能就是数据回显。property标签property标签用于输出指定值:kk'" />default:可选属性,如果需要输出的属性值为null,则显示该属性指定的值escape:可选属性,指定是否格式化HTML代码。value:可选属性,指定需要输转载 2015-11-30 11:48:59 · 272 阅读 · 0 评论 -
Struts2:输入校验
在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验。对于输入校验struts2提供了两种实现方法:1.采用手工编写代码实现。2.基于XML配置方式实现。校验流程1。类型转换器对请求参数执行类型转换,并把转换后的值赋给action中的属性。2。如果在执行类型转换的过程中出现异常,系统会将异常信息保存到ActionConte转载 2015-11-30 11:10:58 · 321 阅读 · 0 评论 -
Struts:常量配置
常量可以在struts.xml或struts.properties中配置,建议在struts.xml中配置,两种配置方式如下:在struts.xml文件中配置常量 struts.action.extension" value="do"/>在struts.properties中配置常量struts.action.extension=do因为常量可以在下面多个配置文件转载 2015-11-30 09:57:42 · 533 阅读 · 1 评论 -
Struts2:类型转换器
网页中的数据都是string类型的,而Action中有很多自定义类型,包括自定义的domain域的JavaBean。Struts2提供了8种基本数据类型的自动类型转换,其他的类型就需要我们自己来转换了。实现自定义的类型转换器需要实现TypeConverter接口,或者继承DefaultTypeConverter,或者更方便的继承自StrutsTypeConverter。public转载 2015-11-30 10:06:54 · 354 阅读 · 0 评论 -
Struts2源码深究:StrutsPrepareAndExecuteFilter
一、概述 Struts2的核心是一个Filter,Action可以脱离web容器,那么是什么让http请求和action关联在一起的,下面我们深入源码来分析下Struts2是如何工作的。FilterDispatcher API 写道Deprecated. Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or StrutsP转载 2015-12-01 08:57:49 · 388 阅读 · 0 评论 -
Struts2:OGNL
OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts 2框架使用OGNL作为默认的表达式语言。相对EL表达式,它提供了平时我们需要的一些功能,如:l支持对象方法调用,如xxx.sayHello();l支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名| 值名],例如:转载 2015-11-30 11:40:58 · 272 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(十三):文件上传下载细节、乱码解决
JSP页面中写的js代码传递参数的时候注意,如果是字符串必须加上单引号,因为EL表达式在服务端执行,解析后如果没加单引号就形成如下,这样显然执行会出错ahref="javascript: showProcessImage(${id})">查看流程图a>ahref="javascript:showProcessImage(hjdf)">查看流程图a>修改成如下之后就能正确执行了转载 2015-12-14 09:51:59 · 2113 阅读 · 0 评论 -
跟着汤阳光同志做一个OA项目(十四):审批流转约定与总流程和一些重要代码及最终的实体设计
审批流程: 第1个环节是“提交申请”,以后基本上都是“审批”环节。 约定: 1,第一个环节一定要是“提交申请”,并且办理人是当前登录的用户。 2,在JBPM中是使用一个字符串作为用户标识符,在ItcastOA中是User对象,不匹配。 可以使用User中一个不会有重复值的字段转为String转载 2015-12-14 10:21:18 · 3241 阅读 · 6 评论 -
跟着汤阳光同志做一个OA系统(五):Struts2的整体回顾
(Action、拦截器、值栈、OGNL表达式、ModelDriven方案等)对于一个请求,struts2主要进行了三个步骤(拦截器、Action、Result),拦截器中创建和初始化ValueStack(创建:包括map和stack,map有put(k,v)和get(k)操作,stack有push(obj)和pop操作;初始化:将request、session、applicat原创 2015-12-10 08:22:51 · 1619 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(十二):通用的分页实现、HQL生成器QueryHelper
======================= 本页的数据列表 ======================== ...======================= 分页信息 ========================页次:${pageNow}/${pageCount}页 每页显示:${pageSize}条 总记录数:${recordCo原创 2015-12-10 08:46:10 · 2051 阅读 · 2 评论 -
跟着汤阳光同志做一个OA系统(六):系统管理、实体映射、类图设计
@实现一组功能的步骤1,充分了解需求,包括所有的细节,需要知道要做一个什么样的功能2,设计实体/表• 正向工程:实体à映射文件à建表• 反向工程:建表 à映射文件à实体3,分析功能• 分析到每个请求的粒度。• 得到的结果是我们需要处理多少种请求,其中每种请求对应一个Action方法,如此就能写Action了。4,实现功能:• 1,创建Acti原创 2015-12-10 08:27:02 · 1892 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(七):树形处理(递归)
显示树形部门练习package com.xsy.oa.test; import java.util.ArrayList;import java.util.Collection;import java.util.LinkedHashSet;import java.util.List;import java.util.Set; import org.junit.Te原创 2015-12-10 08:30:49 · 1115 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(八):抽取页面公共部分、提取BaseAction、ModelDriven支持、Service和DAO合并、BaseAction中Service声明、非常好的增删改查流程
@一些改进:页面公共部分可以合并通过includefile="/WEB-INF/jsp/public/commons.jspf"%>这个页面中,下面两句话都是可以包含的,因为@include先合并再解析 page language="java"import="java.util.*"pageEncoding="utf-8"%> taglib prefix原创 2015-12-10 08:35:45 · 1737 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(十):论坛管理模块、上移下移功能
实现上移下移功能,通过在实体中添加一个position字段1:查询的时候orderbyposition 通过复写findAll方法 @Override public List findAll() { return getSession().createQuery(// "FROM Forumf OR原创 2015-12-10 08:41:13 · 1167 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(九):权限模块
权限: 控制功能的使用 Web应用中的权限:l 权限就是控制功能的使用(功能对应着URL)。l 对功能的控制就是对URL的访问控制。l 在我们的程序中,一个功能对应一个或两个URL:• 1,例如列表或删除功能,只对应一个URL.• 2,例如添加或修改功能,对应两个URL:..add, ..addUI 权限方案:原创 2015-12-10 08:37:00 · 1676 阅读 · 1 评论 -
跟着汤阳光同志做一个OA系统(三):设计DAO
一个项目中会有N多实体,每个实体对应有一些CRUD操作,使用DAO模式将他们封装起来,如下所示:User, UserDaosave(User user), update(), delete(), find(), ...Role, RoleDaosave(Role role), update(), delete(), find(), ...Student, StudentDaosave(原创 2015-12-10 08:17:29 · 1375 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(二):OA系统整体设计及约定、搭建环境
OA系统整体设计及约定一、分层 3层((View+Action)+(Service+Dao)),每一层相对独立,达到解耦和的目的,可以轻松地替换掉某一层。 View JSP/serlvet/action ↓ Service 接口/实现类原创 2015-12-10 08:08:51 · 3290 阅读 · 1 评论 -
跟着汤阳光同志做一个OA系统(四):第一个增删改查(岗位管理)
设计实体—》JavaBean—》hbm.xml—》建表,当然还可以反过来做。在生成sessionFactory的时候就会自动建表。1,设计实体/表 设计实体 -->JavaBean --> hbm.xml --> 建表2,分析有几个功能,对应几个请求。方式 请求数量 地址栏转发原创 2015-12-10 08:19:50 · 1463 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(一):OA项目简介、软件开发环节介绍
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。OA简介一、什么是OA?l OA是Office Automation的缩写,OA系统是处理组织内部的事务性工作、辅助管理、提高办公效率的系统。二、OA中有什么功能?l 日常工...原创 2015-12-10 08:06:02 · 14205 阅读 · 1 评论 -
Spring:Spring整合Struts2
Spring和Struts2整合的目的:将Action纳入Spring容器管理分别添加Spring与Struts2的开发环境(jar包与配置文件) 添加Spring的开发环境Jar包: 1,添加 ${SPRING_HOME}/dist/spring.jar 2,添加 ${SPRING_HOME}/lib/aspectj/*.jar(共2个)转载 2015-12-08 15:15:54 · 457 阅读 · 0 评论 -
跟着汤阳光同志做一个OA系统(十一):论坛模块、实体的特殊属性、CKEditor
/** 普通帖 */ publicstaticfinalintTYPE_NORMAL = 0; /**精华帖 */ publicstaticfinalintTYPE_BEST = 1; /**置顶帖 */ publicstaticfinalintTYPE_TOP = 2; public List findBy原创 2015-12-10 08:43:02 · 996 阅读 · 0 评论 -
SSHJ:Spring整合Struts2、Hibernate、JBPM4
一,集成 Spring 与 Hibernate 1,配置SessionFactory 1,配置 ---------------------- applicationContext.xml ------------------------转载 2015-12-09 08:20:57 · 545 阅读 · 0 评论