ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:22.12KB ,
资源ID:19056403      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19056403.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(struts2快速入门全Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

struts2快速入门全Word下载.docx

1、 步骤4:配置Action, 编写src/struts.xmlpackage name=package名 extends=struts-defaultaction name=action路径 class=action类 method=action方法名 /action/package 步骤5: 配置视图action .result name=视图名jsp的实际路径 视图名与action方法的返回值对应3. 如何接受请求参数 1) 利用工具类获取request,等对象 HttpServletRequest request = ServletActionContext.getRequest();

2、2) 实现ServletRequestAware来获取request对象 private HttpServletRequest request ; public void setServletRequest(HttpServletRequest request) this.request = request; 3) 利用struts的方法来解决如何获取请求参数 (*) 关键点:将请求参数名与Action属性名相匹配即可,struts会帮助进行类型转换 String, Integer, Double, BigDecimal, Date, 自定义实体类, List, List 例如: +-+ |

3、属性类型和名称 | 请求参数格式 | | Student student(内部有id, name属性) | student.id=1&student.name=zhangsan | | List list| list=值1&list=值2. 或 ?list0=值1&list1=值2. | | String list | list=值1&Student list list0.id=1&list0.name=zhang&list1.id=2&list1.name=lisi | | Map map | map1=北京&map2=上海 | +- -+4. 传值与数据显示 让学生认为struts会将ac

4、tion的属性作为request作用域中的变量进行传递5. 作业 通讯录项目,完成登录功能,做的快的可以完成查询所有联系人功能= Day 2 =1. 值栈 ValueStack ,作用范围:仅局限于一次请求 作用:类似与web中的作用域,用来传值2. 值栈的组成: Root区域 - 栈结构, 后进先出 Context区域 - Map结构,键值对3. Root区域的存取值 Struts 会将Action压入值栈,然后在页面上可以利用 value=top 或不写value 表示取得栈顶对象下标0 - 代表整个栈的list String, Student, Student, Action, Defa

5、ultTextProvider1 - 代表list的子集,从下标1开始 Student, Student, Action, DefaultTextProvider2 代表list的子集,从下标2开始 Student, Action, DefaultTextProvider 2.name 从子集里由上至下查找name属性4. 显示值property / 或 从栈中由上至下查找对象符合的属性,找到第一个匹配后,返回属性值iterator value=list集合属性名!-每次循环开始时,将集合中对象压入栈顶- 利用/s:iteratorif test=条件ifelse/else5. Context

6、区域的存取值, 数据结构是一个大mapkey valuerequest 小mapsession 小mapapplication 小mapattr 小map request - session - application 查找某个属性名parameters 小map key - 请求参数名 , value - String#session6. Request的包装修饰模式 decorator 替换了原有的HttpServletRequest对象的实现为:StrutsRequestWrapper$requestScope.属性根据此属性名先找原始的Request作用域中内容,找不到,再到Value

7、Stack的root区域去找7. 作业 通讯录项目,完成查询所有联系人功能,做的快的完成分页= Day 3 =1. 跳转action . type=dispatcherjsp地址 +-+ | 跳转方式 原理 限制 | | dispatcher forward 只能跳转至jsp | | redirect redirect 可以跳转到jsp, 也可以跳转到 Action | | redirectAction redirect 只能redirect至Action | | chain forward 只能forward至Action |例子:success (*)param name=location

8、目标路径redirect (*)redirectActionactionNameaction名字chain2. 重定向传参: 方法1:使用session, 注意及时清理 方法2:使用重定向时拼接get请求参数请求参数名请求参数值 . 其中请求参数值可以是写死的,也可以是$ognl表达式, 此ognl表达式可以从root或context获取内容+-+| 使用session | 使用拼接get请求参数 | 占用服务器内存多,应及时清理 | 不会占用服务器内存 | 比较简单 | 稍微复杂,对汉字参数需要小心 | 不能跨应用传参 | 可以跨应用,跨服务器 |3. packagepackage . na

9、mespace=/命名空间加了namespace属性后,action的访问地址:namespace值+ action名可以根据项目模块或功能的不同,将action分别放入不同的package进行管理有了命名空间后,不同包下的action要进行跳转,要考虑namespace的取值,如:/n2/a2.actionname$namepass123a2namespace/n2/其他命名空间下,如果查找不到某个action,最后还会到默认命名空间下找一次。特别注意:/n1/a/b/c/d/hello.action将最后一个斜杠之前的内容当成命名空间, 与自己定义的命名空间做 startWith的匹配,

10、选取一个最接近的/n1/n1/a (会匹配)4. action路径的匹配方式每发一次请求都会创建一个新的action实例, 因此struts2 action内的成员变量不会有线程安全问题 (*)同一个action类可以定义多个action方法。简化action配置:可以使用*通配符配合1, 2 . 来简化action配置Dynamic Method Invocation DMI动态方法调用,struts不推荐使用,会带来安全隐患5. 常量值的配置:struts.enable.DynamicMethodInvocation = true|false 表示是否启用DMIstruts.i18n.en

11、coding=字符编码struts.multipart.parser=jakarta 上传文件的实现类 commons-fileuploadstruts.multipart.maxSize=上传文件的大小限制struts.custom.i18n.resources=testmessages,testmessages2=国际化资源文件位置struts.action.extension=action, 用来修改action后缀6. 作业通讯录项目,尝试完成分页功能。完成新增联系人操作= Day 4 =1. 讲解分页练习2. struts中的拦截器亮点, 体现了AOP 面向切面编程的思想 1) 自定

12、义拦截器: public 拦截器类 implements Interceptor public String intercept(ActionInvocation invocation) throws Exception / 调用了invocation.invoke() 表示放行,会调用下一个拦截器或action / 没有调用,则表示操作被拦截 return invocation.invoke();package .interceptors interceptor name=拦截器名拦截器类interceptor-stack name=拦截器栈名 /intercepters拦截器名|拦截器栈名

13、result . 拦截器执行的先后顺序,是根据拦截器栈内定义的先后顺序来执行 2) 系统提供的拦截器有: autowiring - 跟spring整合时使用 chain - action之间使用chain方式进行跳转时的处理 exception - 处理异常的 fileUpload - 处理文件上传 i18n - 处理国际化 params - 处理请求参数的 servletConfig - 用来处理 . Aware接口的注入 token - 产生令牌,解决重复提交 validation - 请求参数的验证处理 workflow - 如果验证出现错误,由此拦截器跳转至input视图 3) 可以为

14、整个包指定一个默认拦截器栈引用,如果action内使用了 标签,则会覆盖默认拦截器栈引用 4) 例子:登录检查拦截器的实现,要点: a) 拦截器如果没放行,那么拦截器的返回值也对应一个视图名 b) 定义视图时,用到一个全局视图定义:global-resultslogin/login.jsp 根据视图名查找视图时,action内的视图优先级高优先查找,找不到,则会查找全局视图中的定义= Day 5 =1. Struts 表单验证 1) 直接在action方法内执行验证 2) action 类要继承ActionSupport父类,重写父类的validate方法 a. 经过params拦截器 执行了

15、参数的类型转换和赋值操作 b. 经过validation拦截器 就会调用validate方法进行验证,将验证出现的错误信息放入父类fieldErrors(map) c. 经过workflow拦截器 检查fieldErrors集合是否为空,如果不为空,转发到名为input的视图 3) 使用xml文件进行声明式验证,action 类要继承ActionSupport父类2. Struts 国际化 1) 准备资源文件 资源文件名_语言代码_国家(地区)代码.properties 2) 在Struts中配置一组资源文件constant name=struts.custom.i18n.resourcesm

16、essage/constant 3) 页面中使用资源文件text name=资源文件中的keytext 4) action中使用资源文件 ActionSupport中的方法: getText() 如果资源文件中需要显示动态内容,也可以利用$ognl表达式来获取值栈中的值 原理: 对于action: 如果请求参数中存在一个名为request_locale的参数,则以它的值优先作为语言国家代码,并存储至Session 否则会以Session中一个变量WW_TRANS_I18N_LOCALE 的值作为语言国家代码 如果以上都没有,根据浏览器请求头中的Accept-Language的值作为语言国家代码

17、 对于jsp: 根据浏览器请求头中的Accept-Language的值作为语言国家代码3. 文件上传 1) 准备表单form action=post enctype=multipart/form-datainput type=file name=参数名 .submit上传/form 2) Action接受文件请求参数 public class 文件上传Action private File 参数名; private String 参数名FileName; / 上传文件的原始名 private String 参数名ContentType; / 上传文件的类型,如:image/jpeg, image/png, text/plain, text/html . public String execute() / 1. 处理文件存储路径 / 2. 处理保存文件名的唯一性(选讲) / 3. 另存文件 / 4. 返回文件在服务器URI路径 3) 上传文件的大小和类型限制 a. 总开关,限制文件的大小struts.multipart.maxSize b. 在每个action限制大小以及类型、扩展名:通过给action配置拦截器实现:fileUpload

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1