struts学习记录
see also:http://blog.csdn.net/chenggil10/article/details/5965806#_Toc250472631
0.struts2每一个请求,都new一个实例。
1.动态方法调用代替method参数,dmi,通配符*跟method参数结合,也能达到dmi的效果
通过{1}指定返回的页面和调用的具体方法,比dmi更优!为何我们项目不用通配符?
2.tld,后缀的文件,用于描述标签文件的语言 。strusts2中不需要将tld文件放于web-inf下。
.tld是什么文件
tag标签的配置文件,假如你写了个tag名叫 public class testTag extends TagSupport{
//your code
}
之后你在tld文件里配置一下
<tag>
<name>testTag </name>
<tag-class>
3.使用addFieldError方法和s:fielderror标签简单处理数据校验,为什么要用这个,因为ActionSupport拿不到request,response。。
继承ActionSupport,this.addFieldError("key","value");
返回到页面jsp源码标签,<s:fielderror fieldName="key" ,theme="simple"/>,在jsp页面中添加了一个ul,和li.其中用到了struts的样式;
s:property标签可以取struts中value stack contents的属性值;
4.<s:debug></s:debug>可以显示struts中解析文档。取struts中value stack contents的属性值和stack contexts(action contexts)
5.action中如何访问web元素?
5.1.依赖于容器,struts2的,用ActionContext的静态方法;(得到map)
ActionContext.getContext().getSession()//注意:ActionContext.getContext() 是一个ThreadLocal 的对象
ActionContext.getContext()返回的是map,而在jsp页面中可用request.getParameter()等获取,证明action(从web.xml中的filter类开始,他可以获取到http相关的东西,并存于map中)中map与request,seesion,application建立了关系;
也可以在jsp页面中用#request.r1,#session.r2获取到参数
5.2继承ActionSupport同时实现RequestAware,SessionAware,ApplicationAware,(得到map)IOC(inverse of control控制反转) 或DI(依赖注入)主要用这种
类似spring的思想,不要初始化,交给spring在配置文件中去初始化;
struct给把request、session、application交给你。
5.3ServletActionContext.getRequest()
得到request,再用它去获取其他的
5.4依赖注入实现ServletRequestAware接口;
6.<include>标签,模块分离;
struts.xml 中的标签,包括小组成员的action配置文件;
7.default action .
<derfault-action-ref>标签
默认首页,或者默认出错页面;
8.
dtd 为eclispe 在修改XML添加提示,在xml cateloag中做配置。
文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。它是标准通用标记语言和[1] 可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。
9.redirect 是指服务器返回一个地址给浏览器客户端,客户端重新请求服务器;
10.当在一个namespace 没有找到时,struts时会去路径的上一个去找。(所以基本上不用extends,但一般不会出现这种情况。)
11.通配符
*-* 中横杆,不是下横杆。主要是与default-action-ref 配置标签冲突。
12.*-*配置的特殊处理
设置一个通用的返回success;
然后input 、update 可以配置为<result name="input">*-*_input.jsp 以input结尾的
13.PrepraredStatement 由于Statement,
安全性好;有缓存;
14.每一个action请求,都生产一个实例。
但service只有一个实例,spring注入。
15.AOP的概念;可随时插拔;
16.使用token拦截器控制重复提交
method1:在form中使用post方法而不是get方法;
method2:struts <s:token>
添加一些额外数据给token拦截器;
token拦截器 默认没有配置在struts_default.xml中。
method3:点击后redirect.
17.<s:date>
DefaultTypeConvertor类
18.JPA 是标准(javax.persistence.),hibernate是实现。
19.推荐以层划分包,而不是以模块划分包。
即所有action都放在一个包,entity都放在一个包。
20.Connection/PreparedStatement / ResultSet 都要关闭;
21.c:foreach总是去得到集合对象的iterator迭代器来遍历你的集合的..
struts学习记录的更多相关文章
- Struts2学习记录-Value Stack(值栈)和OGNL表达式
仅仅是学习记录.把我知道的都说出来 一.值栈的作用 记录处理当前请求的action的数据. 二,小样例 有两个action:Action1和Action2 Action1有两个属性:name和pass ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
- UWP学习记录10-设计和UI之控件和模式7
UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...
- UWP学习记录9-设计和UI之控件和模式6
UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...
- UWP学习记录8-设计和UI之控件和模式5
UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...
随机推荐
- CERC2016 爵士之旅 Jazz Journey
传送门(洛谷) 题目大意 给定$n$个位置,和一个长为$m$的序列$A$,你需要经过一条直接的边从第$A_i$个位置到第$A_{i+1}$个位置. 每条有向边$(u,v)$分为两种,第一种可以花费$C ...
- Linux命令学习(21):netstat命令
版权声明 更新:2017-06-13博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的netstat ...
- bzoj 4059:Non-boring sequences 分治
题目: 我们害怕把这道题题面搞得太无聊了,所以我们决定让这题超短.一个序列被称为是不无聊的,仅当它的每个连续子序列存在一个独一无二的数字,即每个子序列里至少存在一个数字只出现一次.给定一个整数序列,请 ...
- 第七篇 PHP编码规范
当码农多年,始终进步不大,前面说了第一个原因是没有明确的目标:第二个原因是没有养成良好的习惯(即优秀的职业规范). 1)pear 规范 http://pear.php.net/manual/en/st ...
- Angular5学习笔记 - 虚拟RestfulApi配置与使用(六)
一.安装json-server功能 #windows cnpm install json-server -g #Mac & Linux sudo npm install json-server ...
- SOAP webserivce 和 RESTful webservice 对比及区别
简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传 ...
- [转] pip镜像升级报警 -trust-host问题解决方案
pip升级到7.0以后,在使用http镜像进行包安装及升级的时候往往会有如下提示: Collecting beautifulsoup4The repository located at mirrors ...
- Spring线程池由浅入深的3个示例
作者博客主页:http://blog.csdn.net/chszs 本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然,所以并未做过多的解释.诸位一看便知. 前提条件: 1)在Ec ...
- strcmp与strncmp的区别
================== strcmp与strncmp都是用来比较字符串的,区别在于能否比较指定长度字符串. strcmp C/C++函数,比较两个字符串 设这两个字符串为str1,s ...
- How to Enabling and Diabling VxDMP devices for use with Oracle ASM
Enable DMP support for ASM to make DMP devices visible to ASM as available disks To make DMP devices ...