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.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...
随机推荐
- Office 2007在安装过程中出错
1, 可能是因为c:\program files\common files\microsoft Shared\web server Extensions\40\bin目录下缺少Fp4autl.dll, ...
- 【剑指offer】以o(1)复杂度删除啊链表的节点,C++实现(链表)
0.简介 本文是牛客网<剑指offer>刷题笔记. 1.题目 在O(1)时间内删除链表节点. 2.思路 前提条件:删除的节点在链表上:边界条件:链表 ...
- UVALive - 4270 Discrete Square Roots (扩展欧几里得)
给出一组正整数$x,n,r$,使得$r^2\equiv x(mod\: n)$,求出所有满足该等式的$r$. 假设有另一个解$r'$满足条件,则有$r^2-r'^2=kn$ 因式分解,得$(r+r') ...
- Gym - 100623J Just Too Lucky (数位dp)
给定n∈[1,1e12],求1到n的所有整数中,各位数字之和能整除它本身的数的个数. 这道题与UVA-11361类似,假如设dp[u][lim][m1][m2]为枚举到第u位(从低到高数),是否受限, ...
- HttpServletRequest获取请求得URL信息
request对象中包含的是请求信息,当我们在浏览器地址栏上输入:http://localhost:8080/Example/AServlet?username=zhangsan,这段地址也会作为请求 ...
- 基于Python语言使用RabbitMQ消息队列(一)
介绍 RabbitMQ 是一个消息中间人(broker): 它接收并且发送消息. 你可以把它想象成一个邮局: 当你把想要寄出的信放到邮筒里时, 你可以确定邮递员会把信件送到收信人那里. 在这个比喻中, ...
- vue项目错误集
1.报错:vue.esm.js?efeb:591 [Vue warn]: Avoid using non-primitive value as key, use string/number value ...
- 序章:为什么学习使用kotlin、及kotlin的一些碎碎念
为什么使用kotlin? 当然是因为项目目前的开发语言是kotlin啊! 一方面是想能够尽快适应项目,另一方面,kotlin这门语言独特的语法,确实很吸引我,也让我意识到java代码在某些程度上的繁琐 ...
- 新建一个Model类的注意事项
昨天在工作中新建了一个Model类在测试环境测试一点问题也没有,到了生产环境就报错了,由于调用的是分页类,报错说:在520行 _count() 函数不存在. 我的思路是:先到生产环境查看了具体的报错文 ...
- Anti-pattern(反模式)
常见的与“直觉”相背离的 anti-pattern 产生的实际原因是我们没有深入全面地考虑问题. 即只关注到自己关心的方面,忽略了其他重要的.恰好起相反作用的因素. 所以这个“直觉”是不成熟.不全面的 ...