Struts2第二天】的更多相关文章

Struts2第二天 昨天: 1.Action的编写方式:实现Action接口.继承ActionSupport.自定义pojo作为action 2.action调用方法:默认的execute.method属性调用.动态方法调用.通配符的使用(最常用的) 3.action访问servlet API:解耦方式.接口注入.静态方法调用 4.结果集的使用:局部和全局结果集.dispatcher.redirect.redirectAction.stream 课程内容:(请求) struts2的请求参数的接…
先介绍一下大致内容: 大致内容: 结果页面配置 action获取表单提交数据 提供获取表单数据的方式(封装数据) 表单数据封装到集合中 表达式封装和模型驱动封装比较 一.结果页面配置: result标签是配置action的返回值,然后到不同的路径去 (复制昨天的项目过来时,除了改项目名称外,还必须改web 项目名) 改web项目的项目名可以右击->properties->搜索web找到settings->修改context name 回顾流程:导包——创建action——创建核心配置文件…
搭建struts2环境时,我们一般需要做以下几个步骤的工作: 第一步:创建javaweb工程(这个很废话有木有) 第二步:找到开发Struts2应用需要使用到的jar文件.(这个很白痴有没有) 到http://struts.apache.org/download.cgi#struts2514.1下载struts-2.x.x-all.zip,最新的版本为2.5.14.下载完后解压文件,开发struts2应用需要依赖的jar文件在解压目录的lib文件夹下.不同的应用需要的JAR包是不同的.下面给出了…
1.2 知识点 1.2.1 Struts2的Servlet的API的访问 1.2.1.1 方式一 : 通过ActionContext实现 页面: <h1>Servlet的API的访问方式一:解耦合的方式</h1> <form action="${ pageContext.request.contextPath }/requestDemo1.action" method="post"> 姓名:<input type="…
前言 我们现在学习的是Struts2,其实Struts1和Struts2在技术上是没有很大的关联的.Struts2其实基于Web Work框架的,只不过它的推广没有Struts1好,因此就拿着Struts这个名气推出了Struts2框架. 因此,学习Struts2的时候,不了解Struts1是没有任何关系的. 在开山篇的时候,已经说明了为什么要引入Struts框架,其实就是为了提高开发效率- Struts2框架预先实现了一些功能: 请求数据自动封装 文件上传的功能 对国际化功能的简化 数据效验功…
3.自动装配  零散属性:Action类中两个成员变量的名称和页面上表单元素name属性值保持一致.      规则:约定优于配置.  领域模型:两种配置    public class FirstAction implements Action{private UserInfo userinfo;    }      配置一:      userinfo.username      userinfo.password      配置二:ModelDriven     public class…
上一小节已经学会了如何去搭建Struts2的开发环境,该篇博客我们继续深入Struts2,了解Struts2框架的拦截器. 首先对我们在web.xml文件配置的过滤器进行一个源码的分析. 在StrutsPrepareAndExecuteFilter源码中,有一个init()方法,它调用方法获得了一个Dispatcher对象,这就是我们要分析的关键了.进入到它的源码,在其init()方法中调用了init_TraditionalXmlConfigurations()方法,该方法的源码如下: priv…
******************************************************************************************************************** struts2第一天课程的简单配置: 新建 Web Project后导入Struts2.jar包,在struts-2.3.16.3-all.zip\struts-2.3.16.3\apps下找到struts2-blank.war,打开之后找到struts2-blan…
day02 下面是在每个Action之前都会执行的拦截器,这段代码来自与struts-default.xml文件. <interceptor-stack name="defaultStack"> <interceptor-ref name="exception"/> <interceptor-ref name="alias"/> <interceptor-ref name="servletCon…
Struts2的Action的搜索顺序: 地址:http://localhost:8080/path1/path2/student.action     1.判断package是否存在,例如:/path1/path2:     2.若存在,判断action是否存在,没有则报错:     3.不存在,检查上一级路径的package是否存在(知道默认的namespace),重复第一步,没有则报错. 项目实例: 1.项目结构 2.pom.xml <project xmlns="http://ma…
1. spring整合struts的基本操作见我的博文:https://www.cnblogs.com/wyhluckdog/p/10140588.html,这里面将spring与struts2框架整合起来,并且实现了action获取service,说明spring与struts2框架已经建立联系,互通了,但是这种使用web工厂的方式太麻烦了,在开发中并不会使用这种方法,所以我就要介绍spring整合struts2框架的另外一种方法.目前有两种方法,现在介绍第二种方式,第一种方式见我的上一篇博文…
本章要点 —  Struts 2的下载和安装 — 纯手工创建一个Web应用 — 纯手工创建一个Struts 2应用 — 实现Struts 2的Action — 配置Struts 2的Action — 在Action中访问HttpSession — 在JSP中输出Action的返回值 — 使用Struts 2的表单标签 — 程序国际化初步 — 数据校验初步 前面已经简要介绍了Struts 2的起源,以及Struts 2的两个前身:Struts 1和WebWork,并详细对比了Struts 2和St…
今天我们来讲解一下SSM整合,感觉整合这个比上一篇整合更费时,原因在于自己不太熟悉MyBatis了,下午的时候恶补了一下,看了一下相关的文档和PDF电子书,知识真的是你不用就会忘记的,以后还是不能懈怠了,把自己不擅长的领域抓一下. 为什么?怎么做?去做?我们今天围绕着三个问题来展开话题的讨论与内容的解说. 1.0我们为什么需要整合呢? 解答:一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力:它可以被扩展以进行内部的定制化:并且有强大的用户社区来支持它.框架通常能很好的解决一个…
本文地址:http://blog.csdn.net/sushengmiyan/article/details/40303897 官方文档:http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html 本文作者:sushengmiyan ---------------------…
拦截器 1. 什么是拦截器 1). 与JavaWeb中的Filter比较相似. 2). 拦截器只能拦截Action!!! 2. Struts中定义了很多拦截器,其中defaultStack中的拦截器会在每个Action之前执行. 3. 已经知道的拦截器 1). params 2). converterError 3). validation 4). workflow ===================== 3. 自定义拦截器 1). 写一个拦截器类 * 实现Interceptor接口(基本不…
类型转换 1. 什么是类型转换 刚才学习了封装请求参数,把表单数据封装到Action(模型)的属性中.表单中的数据都是String类型,但Action(模型)的属性不一定什么类型. 将来我们还需要数据的回显,即把Action的属性值显示到表单中.把Actoin的属性显示在表单中. 类型转换是双向的 String[] --> Object,从表单到Action Object --> String,从Action到表单 默认情况下,Struts会帮我们转换如下类型: 1. Date 2. 基本类型…
Struts2中提供了两类数据封装的方式? 第一种方式:属性驱动(有两种方式:一个对属性,另外一个是将参数封装到javaBean中) B. 在页面上,使用OGNL表达式进行数据封装.(将参数封装到javaBean中) * 在页面中使用OGNL表达式进行数据的封装,就可以直接把属性封装到某一个JavaBean的对象中. * 在页面中定义一个JavaBean,并且提供set方法:例如:private User user; * 页面中的编写发生了变化,需要使用OGNL的方式,表单中的写法:<input…
Struts2是一个用来开发MVC应用程序的框架,它提供了Web应用程序开发过程中的一些常见问题飞解决方案: -对来自用户的输入数据进行合法性验证 -统一的布局 -可扩展性 -国际化和本地化 -支持Ajax -表单的重复提交 -文件的上传下载 Struts2和Struts1相比有哪些优势? 在体系结构方面更优秀 -类更少,更高效:在Struts2中无需使用"ActionForm"来封装请求参数 -扩展更容易:Struts2通过拦截器完成了框架的大部分工作,在Struts2中插入一个拦截…
struts-2.5.14.1-all.zip  下载后文件夹说明 apps:war格式的例子文件 lib:引用jar包文件 src:源码文件 docs:帮助文档 小例子: 1.创建web工程:struts <?xml version="1.0" encoding="UTF-8"?> <web-app id="starter" version="2.4" xmlns="http://java.sun…
1.创建web项目,添加struts2支持的类库,在web.xml中配置struts2过滤器. 2.创建名为UserAction的Action对象,并分别在其中编写add()和update()方法,用于处理添加用户信息和更新用户信息的请求,并将请求返回到相应的页面,代码如下所示: package com.wh.Demo;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSuppor…
method属性 在前面的例子里,Action默认使用execute()方法来处理请求.但是,如果有多个不同的请求需要同一个Action进行不同处理,怎么办?在Struts.xml文件中,需要指定Actin中的多个方法对不同的请求分别进行处理.该功能可以通过<action>中的method属性来实现. public class HouserUserAction { /** * 处理login请求 * @return */ public String login(){ System.out.pr…
国际化 1. 回忆之前的国际化 1). 资源包(key=字符串) > 命名:基本名称+local部分.properties,res_zh.properties,res_zh_CN.properties,res_en_US.properties 2). ResourceBundle,用来读取资源包的内容.获取它需要提供基本名称和Locale -------------- Struts国际化 分类 1. 全局(常用) 2. 局部 > Action局部 > 包局部 > 临时 使用场景 1…
获取请求参数 请求参数:表单中的数据,或者是超链接中的数据. 1. 得到request,再通过request来获取.2. 属性驱动 在Action中提供与表单字段名称相同的属性即可. 而一个名为params的拦截器来完成!3. 模型驱动(最为常用) 1). 给出一个model类 2). 在Action类中定义model成员,必须手动实例化. 3). Action类必须实现ModelDriven接口 4). ModelDriven接口只有一个方法,叫getModel(),我们让它返回model对象…
输入校验: 1. 分类 客户端校验:javascript,它是用户体验而已,可以绕开. 服务器端校验 * 代码校验 1). 要求Action必须继承ActionSupport 2). 重写ActionSupport类的validate()方法. 添加校验逻辑! > 如果出错,添加fielderror即可. * 配置校验 2. 原理 validation拦截器,会调用Action的validate()方法,我们自己编写的validate()方法,它会在校验失败时向当前Action中添加字段错误.…
又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Convention支持零配置进行开发,也就是约定约定优于配置的方式. (1)环境准备 使用Convention Plugin进行开发,需要引入struts2-convention-plugin,完整的pom.xml依赖如下: <dependency> <groupId>org.apache.…
Convention 插件 从 Struts 2.1 开始, Struts 可以使用 Convention 插件来支持零配置: Convention 插件完全抛弃配置信息, 不仅不需要使用 struts.xml 文件进行配置, 甚至不需要使用 Annotation 进行配置. 而是完全根据约定来自动配置. 安装 Conversion 插件: 复制 struts-2.2.1\lib\struts2-convention-plugin-2.2.1.jar 到当前当前 WEB 应用的 WEB-INF…
基于Struts2框架下实现Ajax有两种方式,第一种是原声的方式,另外一种是struts2自带的一个插件. js部分调用方式是一样的: JS代码: function testAjax() { var $userNameInput = $("#ajax_username"); var userName = $userNameInput.val(); $.ajax({ url : "originAjax.action", type : "GET",…
写在前面 自从工作后就过上了只有一个月记忆的生活,太健忘,很多学过的东西因为用得少便忘记了,第二次学习struts,为了以后便于查阅,开始自己的博客之旅.Struts的学习还是从Hello World开始. 资源下载 Stuts的官网地址:http://struts.apache.org/ Struts2.3.31的官方下载地址:http://mirrors.hust.edu.cn/apache/struts/2.3.31/struts-2.3.31-all.zip 将下载文件解压得到以下目前结…
一.深入浅出Struts2 什么是Struts2? struts2是一种基于MVC的轻量级的WEB应用框架.有了这个框架我们就可以在这个框架的基础上做起,这样就大大的提高了我们的开发效率和质量,为公司节省了不少的人力成本. 为什么使用Struts2? struts2实现了视图与业务应用逻辑的解耦(软件工程的高内聚,低耦合原则). 在Model 1时代,开发web项目我们都是在JSP里写入处理业务逻辑的JAVA代码,尤其像涉及到数据库和页面form表单数据之间交互的时候,每次都要写连接.查询.增加…
添加支持 我先介绍的是MyEclipse9的自带框架支持搭建过程:(完全的步骤 傻瓜式的学习..~) 首先我们来搭建一个Web项目: 一.Hibernate(数据层)的搭建: 相关描述 Ⅰ.服务器与数据库之间的交互 Ⅱ. Hibernate封装了一系列的JDBC代码,提供相应的方法我们使用,使我们的开发变得简单快捷,效率大大提高 实现流程 二.Struts2(MVC)的搭建: 相关描述 Ⅰ.本质上相当于一个Servlet Ⅱ.不需要手动获取传递参数 (只需要定义声明属性名和设置get.set的方…