配色: 字号:
struts框架
2017-02-23 | 阅:  转:  |  分享 
  
2017/02/23Struts1是基于servlet开发的,目前一般不用Struts2是基于fremawork的框架,而是继承webwor
k的原理,吸取了struts和webwork的特点客户端(请求)-----》FilterDispatcher—》ActionMa
pper-----------拦截器—》Action|
||
struts.xml|《-------------------------------------------
-----响应《-----------------------------------------------jsp步骤:创建w
eb工程导包在web.xml中配置struts的前端控制器4、在sturts.xml类上面:(这里是要复制粘贴的)rsion="1.0"?encoding="UTF-8"?>Software?Foundation//DTD?Struts?Configuration?2.1//EN"?"http://st
ruts.apache.org/dtds/struts-2.1.dtd">Filter的路径(设
置)编写jsp页面,接收action中传的值(s标签,以add为例!)S标签的验证要定向转向到(在struts里面转向!)arti
onArtion(return回去)转向到其它页面(转向到artion页面)List集合(出来转向)转向到struts(list
.jsp)展示效果添加数据(要转换toadd)利用struts转换回到开始跑工程的第一步:注意:在struts2中,一个actio
n类代表一次请求或调用,每个请求的动作对应一个相应的action类,一个action类是一个独立的工作单元在struts2中开发a
ction有三种方式写普通类,属性有setget方法,有execute()方法实现action接口,里面自动有execute
()方法,只有写属性同时有setget方法3、继承actionsupport,因为actionsupport是在actio
n基础上开发的,所以在实际开发中一般使用这种方法属性驱动(基本数据类型的属性对应):优点:简单,页面name和属性直接对应缺点:导
致action类看上去比较凌乱,显得功能不够单一(因此在实际开发中视情况而用)属性驱动(直接使用域对象)优点:把模型数据从cati
on中分离出来,让action专注于请求处理,使得程序结构更清晰缺点:页面上在对应的时候,必须添加正确的前缀,稍嫌麻烦,(也因在a
ction有多个数据模型时,这特性成了优点,也可以根据前缀区分这数据对应给谁,)模型驱动:优点:把模型数据从Action中分离出去
了,使得程序结构更清晰;缺点:需要Action实现特殊的接口,而且把模型数据和Action作了一个绑定,这极大地限制了一个Acti
on对应多个数据模型的能力,当然也可以做到,就是在这个模型里面包含其他的数据模型。在实际开发中,根据情况来选用。Struts(
s查)最强大的技能就是:Getset的代码省略很多,直接取值;动态调用:2017/01/09Struts标签库Set标签,(数
据标签)Debug标签<%@tagliburi="/struts-tags"prefix="s"%>注意:添加simpl
e使s标签失效例子alary<=1000”>工资好低啊!兄弟工资中等啊
!兄弟工资高级啊!兄弟<
s:elseiftest=”#salary>=8000”>工资土豪啊!兄弟If标签(控制标签)Iterat
or标签(不能用$)标签::form>…表单标签文本输入框ord>…密码输入框文本域输入框adio>…单选按钮多选框/>提交标签重置标签隐藏域标签Struts2的内建主题:?simple:
只生成最基本的HTML元素,没有任何附加功能。?xhtml:在simple的基础上提供附加功能,提供布局功能,Label显示名称
,以及验证框架和国际化框架的集成。?css_html:?在xhtml的基础上,添加对CSS的支持和控制。?Ajax:继承自xh
tml,?提供Ajax的支持。Struts标签需要引入注释的内容创建web包在add.jsp界面Struts2默认的表达式语言是
ognlOGNL是Object-GraphNavigationLanguage的缩写,他是一种功能强大的表达式语言,通过它简
单一直的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能,多表查询Struts上传
信息SmartUpload用的最多的一个组件,不再更新,可以实现上传和下载FileUploadApache实现文件上传组件
,功能齐全J2kUploadjava2000实现文件上传,全部使用内存,适合多个不超过10m的小文件步骤:(导jar包)实现
的格式(添加enctype=multipart/form-data【必须的】)不添加就是默认的是application/x-www
-form-urlencoded(字符){文件上传大小默认为2mb}File文件的名必须是filepersonAction
类(继承acionsupport实现model接口)注意:最后效果上传的路径(存到服务器)在表上设置显示下载寻找在服务器的路径(
进行下载)在list.jsp下载按钮设置路径修改:修改信息线程休眠:thread.sleep重复提交:(令牌开发)ype="hidden"name="struts.token.name"value="struts.token"/>uttype="hidden"name="struts.token"value="6UFV9CV516ATBDGDNPJ3Q
ZRQ1H0ZU6OB"/>"border="0">防止重复提交:一、重复提交?,应该想到两种场景:1.?在下单,或者支付?这种情况?那么不允许?刷新,不允
许后退再点击提交(后退之后提交会失败,修改了也不行)。2.?在填写表单之后,提交完成之后,不允许?刷新,但是允许?返回之后?提交,
给用户修改表单的机会。二、工作原理?在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),同时在当前用户的Sess
ion域中保存这个Token。-?将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,表单提
交的时候连同这个Token一起提交到服务器端。-?在服务器端判断客户端提交上来的Token与服务器端生成的Token是否一致,如果
不一致,那就是重复提交了,此时服务器端就可以不处理重复提交的表单。如果相同则处理表单提交,处理完后清除当前用户的Session域
中存储的标识号。在struts设置拦截器tStack">oken">addinterceptor-ref>e="invalid.token"type="redirect">error.jsp设置休眠时间在工具类完成上
传之后加上去Actionthread.sleep(1000)//这是毫秒启动的C标签是回显等等Struts的缺点:拦截,拦截很多东西,令牌器要在form中国际化:步骤:第一步:在src目录下添加两个资源文件,命名很重要,在struts.properties文件,这个文件也是放在src目录下的。配置文件配置:实现在jsp页面中的中外文对换中文English
献花(0)
+1
(本文系SUNMOONsin1...首藏)