黑马程序员技术交流社区

标题: 【郑州校区】三大框架笔记之Struts2-day03 [打印本页]

作者: 我是楠楠    时间: 2017-12-13 10:49
标题: 【郑州校区】三大框架笔记之Struts2-day03
【郑州校区】三大框架笔记之Struts2-day03
一、 Struts2文件上传1. 文件上传介绍
浏览器端注意事项:
表单提交方式method=post
表单中必须有一个<input type=”file”>组件
表单中必须设置enctype=”multipart/form-data”
服务器端
         Commons-fileupoad.jar包完成。
Struts2框架本身支持文件上传
问题:struts2框架如何完成文件上传?
Struts2框架使用一个fileupload的interceptor来完成文件上传,而我们要使用它
在action中我们可以提供类似以下的操作就能完成文件上传操作
在execute方法中将文件copy就可以完成文件上传。
2. 文件上传快速入门
第一步:创建一个upload.jsp页面
第二步:创建action
3. 文件上传注意事项
文件上传时出现了问题
现在的问题是我们的action中没有设置input视图
在页面上可以通过
在default.properties中
struts.multipart.maxSize=2097152  (2m)
它是描述文件上传时允许的最大值
只需要在struts.xml文件中
我们还可以查看FileuploadInterceptor
如果我们上传时,允许上传多个文件如何操作?
Action如何处理?
也可以使用List<File>  List<String>来控制属性
在方法中
二、 Struts2框架Ajax开发1. JSON介绍
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#Java、JavaScript、PerlPython等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
1.1. JSON结构
json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。
1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
经过对象、数组2种结构就可以组合成复杂的数据结构了。
1.2. Java中json工具介绍Fastjson简单使用介绍
1. 导入jar包
2. 对于User对象
3. 对于List<User>
如果对Date类型进行格式化输出
关于属性是否生成在json串中设置
Jackson简单使用介绍
Spring mvc它的底层使用的就是jackson
1.导入jar包
2.使用
处理日期类型
过滤属性
编码方案实现
需要在类上添加一个注解
2. Strtus2框架如果处理ajax请求2.1. 可以使用HttpServletResponse响应数据
在struts2框架中可以获取HttpServletResponse对象,就可以通过response来完成将数据(json)响应到浏览器过程
浏览器端
需要使用onblure失去焦点事务来处理文本框,向服务器发送ajax请求(jquery完成)
服务器端
数据响应没有问题,处理中文乱码
在浏览器端处理服务器响应的数据
2.2. 使用strtus2框架的json插件来完成ajax操作
首先要导入插件包
我们怎样使用struts2提供的json插件?
1. 将我们自己配置文件中的<package extends=”json-default”>.
2. Action的返回视图<result name=”” type=”json”>
3. 因为我们配置了上面两步,那么struts2框架就会将valueStack中的栈顶元素转换成json响应到浏览器
2.3. 案例---查找商品信息浏览器端操作
服务器端
关于响应的json处理:
1. 怎样忽略属性
上面这种方案有弊端
在org.apache.struts2.json.JSONResult类中有两个属性
它们可以设置响应的数据中是否包含或不包含属性
2. 设置root
没有设置root前返回的json结构 ps:[{},{}]
设置root它的根为ps后的返回的json  [{},{}]
处理服务器响应数据到浏览器展示
三、 Struts2注解开发
注意:要想使用struts2的注解,我们必须单独在导入一个jar包。
它是在strtus2的2.1版本后引入
<package name=”” namespace=””  extedns=”>
<action name=”” class=”” method>
<result name=”” type=””>
1. 快速入门
@Namespace来代替<package  namespace=””>
@ParentPackage来代替<package extends=””>
@Action来描述关于<action>配置
value属性<action name=””>
使用@Action的results来描述关于结果类型的配置<result>
<result name=”” type=””>
@Action(results={@Result(name=””,type=””,location=””)})
2. 其它注解:
@Actions
作用:可以通过多个映射来访问同一个action
@Results
类似于全局的结果视图
@InterceptorRef
它是用于处理拦截器的
问题:我们在action类中定义了注解,strtus2框架怎样识别它们?
原因:我们必须查看插件包中的配置
是在action,actions,struts,struts2这样的包下扫描注解
3. 案例-使用注解来完成登录与显示商品3.1. 搭建环境创建库与表
创建package
3.2. 登录操作login.jsp
UserAction
UserService
UserDao
product.jsp
3.3. 商品显示product.jsp页面完成部分功能
Action
Service
dao
在product.jsp页面上处理服务器响应json并展示
控制用户登录后可以访问商品展示
Interceptor步骤
1. 创建一个类来实现Interceptor接口或继承MethodFilterInterceptor
2. 在struts.xml文件中声明
3. 在action的配置中引用
我们将所有响应到浏览器的数据都封装到Result类中
正确情况下响应的数据
错误情况下数据


【郑州校区】Python3 创建虚拟环境
【郑州校区】python基础之基本指令汇总
【郑州校区】Ubuntu 如何创建快捷方式

【郑州校区】python基础班之Linux 终端命令格式
【郑州校区】python基础班笔记之python操作系统
【郑州校区】subline 取消自动更新提示
【郑州校区】常用 Linux 命令的基本使用
【郑州校区】MyBatis 入门开发 —-基础入门
【郑州校区】文件和目录常用命令
【郑州校区】MyBatis 入门开发 ----Mapper接口开发
【郑州校区】系统信息相关命令
【郑州校区】用户权限相关命令
【郑州校区】远程管理常用命令
【郑州校区】文件和目录(理解)
【郑州校区】python学习之其他命令
【郑州校区】MyBatis 入门开发 ----配置文件
【郑州校区】MyBatis 入门开发 ----输入,输出参数
【郑州校区】三大框架之Struts2-day01
【郑州校区】三大框架之Struts2-day02
【郑州校区】将第3方的jar 添加到本地Maven库
【郑州校区】Hibernate入门------HelloWord
传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出


作者: Port    时间: 2017-12-13 11:04


作者: 我是媛媛    时间: 2017-12-13 11:48

作者: 小小的人儿    时间: 2017-12-13 11:51

作者: 我是色色    时间: 2017-12-19 17:13
{:8_507:}
作者: 迷途小兵    时间: 2018-2-24 18:44
我要数据库和表




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2