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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

struts221学习笔记.docx

1、struts221学习笔记1、 首先在在struts-2.2.1.1appsstruts2-blankWEB-INFclasses目录下拷贝struts.xml至src下粘贴。再拷贝struts-2.2.1.1appsstruts2-blankWEB-INF下web.xml里的filter到web.xml。2、 一般/*用写*号,虽然有时候用*.Action也可以。默认过滤所以请求。被org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter接收到。首先看namespace(struts.xml),这里namesp

2、ace为”/”再去找里面有没有hello的action,如果有去找对应的result应用的项。3、 Struts.xml里面中namespace=”/”中的”/”与我们在浏览器中访问的路径一一对应。Locahost:8080/my/最后面的一个”/”对应要访问下面action需要localhost:8080/my/hello.action就可以,不然会出错。4、 在struts.xml里面复制把value改为true,则表示,开发模式,重启tomcat服务器,就可以了。这样更改配置很会自动更新5、 在struts.xml里面”提示。在struts2文件夹里面,随便找一个struts2-core

3、的jar文件解压,struts.xml里的dtd文件,为http:/struts.apache.org/dtds/struts-2.0.dtd,把struts-2.0.dtd加入到xml的catalog里面就可以 了。”windows”-“Preferences”再”MyEclipse”-“Files and Editors”“XML”“XML catalog”在XML catalog Entries里按add,key Type为上面的url,key的值为:http:/struts.apache.org/dtds/struts-2.0.dtd,location为struts-2.0.dtd所在

4、目录 ,点击ok就可以了。6、 7、 namespace决定了action的访问路径,默认为(意味着不写,不管在浏览器哪里敲action,都会查找下面的action,在其它namespace找不到的action都交给默认为”的namespace去处理), 可以访问所有路径的action,namespac可以写成/,或/xxx或/xxx/yyy,/xxx/index.action,namespace最好也用模块来命名(package也一样尽量用模块来命名)。当需要访问namespace=/front时,需要在action前面带上/front/hello.action.,当没有找到对应的names

5、pace时候会返回tomcat服务器,web.xml,welcome-file8、 result默认名字为SUCCESS成功。9、 当复制一个项目的时候,需要注意,名字虽然改成了“T”,部署到tomcat服务器,但是却访问不到路径,其实他还是原画的名字,能访问,所以我们要改”Web Context-root”改成与项目名字相同(T)就可以访问了,如:10、 当访问action 的时候 ,会找到对应的class类对象,每一次访问必定会new一个此类对象(struts1 是服务器启动就自动new一个对象,这样会出现线程同步问题),自动执行 execute()方法反回一个String值。当不配置cl

6、ass时,默认执行的是ActionSupport返回success11、 定义自己的actiona) 实现Action接口b) 从ActionSupport继承。(常用)可以直接调用struts2封装好的方法c) 直接public String exectue()12、 路径问题:a) 在jsp页面里面,如果 是action映射成功的,那么在里面的不会去表示jsp当前页面,而是action映射的路径。可以用jsp自动生成前面的:12、在这里可以自己定义方法。只要返回的是一个String就可以了。有一种动态的调用dmi,能过user!add来指定类名和方法名,调用。13、 可以使用通配符配置。”

7、*”是第一个通配符,2代表第二个通配符,代表一个字符串,如ActionAdd时候就会自动找到Action*,ActionDelet的时候,也会自动找到Action*,1表示第一个*号,这里代表Add和Delete。在下面的result的时候,也可以用*代表这个字符串。首先匹配最精确的14、 “约定优于配置!”15、 在有些项目名称更改之后,无意断开,会导致web.xml文件破坏,需要重新复制filter进去。16、 还有可能是编译1.5版本与jdk的版本不匹配。或者是tomcat中的jdk版本不匹配,具体中:a) b) 17、 Action传递参数:a) 在自己的Action里定义属性,写好g

8、et,set方法,当new时会自动设置(传值)。url 里面的参数的Action里的成员变量可以是一一对应的。变量名与url里也可以不相同,但是会自动调用setName()中set后面的方法名字,必须与url相同。b) 方法二:可以直接使用user对象,传递参数,user.name=name;当model与的属性数量不相等时候,不能用域模型model,用do/dto/vo。另外定义一个dto类,只用来传递参数,交给model对应的参数和其它的参数值。(当父类与子类有相同的属性名时候,在url里面有相同赋值,则当前类(子类)优先)c) 方法三:modelDrivenInput,实现ModelDr

9、iven模型驱动这个接口。这个时候user必须自己new,tomcat不会自动去new。1. public class TeacherAdd extends ActionSupport implements ModelDriven2. User user=new User();3. String s;4. public String getS() 5. return s;6. 7. public void setS(String s) 8. this.s = s;9. 10. public String Add() throws Exception 11. System.out.println

10、(ModelDriven name:+user.getName();12. System.out.println(ModelDriven age:+user.getAge();13. System.out.println(ModelDriven s:+s);14. return SUCCESS;15. 16. Override17. public User getModel() 18. / TODO Auto-generated method stub19. return user;20. 21. 22. /这样能接收多个参数,包括模型里面以外。d) 总结,接收的参数往往是交给参数的模型去处理

11、。18、 有中文尽量不要用get提交数据,用post。19、 中文乱码问题:a) Struts.xml里加上一句,实际上就已经解决了中文乱码问题。在1.1.7版本之后可用,在1.1.6之前这是一个bugb) 有时候把web.xml里的过滤类org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter这是2.1改在2.0的:org.apache.struts2.dispatcher.FilterDispatcher有时候也可以解决乱码问题。20、 Struts2学习在struts-2.2.1.1docsWW文件里面ho

12、me.html里guides.html打开。基本上所有的配置都在里面。21、 在struts2里面this.addFieldError(“name”,”name errot”)添加属性错误信息(继承ActionSupport 类this.addFieldError是从该类继承)。a) 要把错误属性担出来需要用struts2标签。theme可写可不写。不能更改展现。只能重写css的class,右击查看源码,修改对应的class。b) 查看所有bug,常用c) 取属性展现出来,可以取里的属性。Error是一个map,想取里面的内容用error.name0(ognl表达式。)22、 访问web元素,

13、request,session,application,HttpServletRequest,HttpSession,ServletContext。a) 取得request,session,application,利用ActionContext拿到Map值(一般有Context是封装环境),当我们利用些对象request.put身变量里复制时候,会全部复制到http的request对象里去,在前台就能访问了。都 不是单例。Request.getAttru.(“name”)和获取值。b) (只用这种,除非特殊情况)实现接口ApplicationAware,RequestAware,Session

14、Aware,(Aware得知,知道,获得)要求提供三个方法,setRequest,setSession,setApplication,当实现上面三个接口就应该知道对应的request,session,application的存在 。(实现ioc(inverse of control)或di(dependency injection)设计思想),依赖注入到request里面或本来由自己控制,现在由别人控制。最常用的。Request在类里面也很少拿。将http原始的request转换成map类型的request. 用这种方法取值c) 若想访问http里的request,session,applic

15、ation类型,定义为HttpServletRequest,HttpSession,ServletContext。实现接口ServletRequestAware,对应一个setServeltRequest方法,给变量赋值。23、 Struts.xml里面配置可以包含其它xml文件,当成struts.xml里的一部分。24、 Default Action默认Action的引用。如果找不到对应的Action就去找它。但是找到后,不会去执行它的Action里的配置的类,只是单纯的跳转到指定的页面。(注意这里面的这是一个bug,可以在web.xml的defaultAciton设置默认Action这样可

16、以省去default-action-ref了。)有待解决!25、 注意解决问题的方式。26、 Result类型,在定义result的时候可以定义一个类型。默认是dispatcher,服务器跳转(forward跳转只能跳转到页面)。a) Dispatcher(默认)b) Redirect(点击之后url显示的是jsp的地址)c) Chain(服务器跳转到Action)d) redirectAction(客户端跳转到Action)e) freemarkerf) httpheaderg) streamh) velocityi) xsltj) plaintextk) tiles27、 $rr是Acti

17、on的一个成员变量。对于任何一个Action的属性都会放到堆栈里面,Vlaue stack contents里面。R是Action的一个属性可以用r取值,而r是动态确定的,叫动态结果集。Ognl表达式。(不常用 )28、 Jsp页面从值栈取值,29、 将Actionr的参数传递出来,也可以/user_success.jsp?name=name30、 其中extends继承,相当于继承包的配置,这里继承struts缺省值。也可以extends=“user”继承了包为user的所有配置。(这是很常用 的方法)31、 /main.jsp全局的共用结果集。32、 凡是forward过程共享一个值栈。3

18、3、 作业34、 看文档(学会使用文档)doc文档,struts-tags35、 设计BBS(做一个约定,在项目经理下)36、 Ognl(Object Graph Navigation language)37、 38、 先做原型再一点一点向上包。这种模式更容易适应需求,迭代式作试验 。39、 基中username是OGNL表达式。也是ognl表达式。40、 只有我们在url里面传user.xxx,才会构造user方法。如果在url里面不传递参数user.xxx只有xxx则也可以 ,但是需要自己new在类里面new一个user对象。空的构造方法没有时候,就不会自动初始化。41、 一般DomaMo

19、del都要提供无参的构造函数。否则会出错。42、 访问Action多级Cat.friend.name是可以的调用方法也是一样的,很直观,Cat,friend.getClass(),但是直接调用方法的时候只能是针对Action,不用类名只写方法名。43、 访问当前值栈的方法也可以用44、 访问静态方法,访问静态属性例,但是在2.1里面改了一个设置,要在struts.xml里面加上:,才能成功访问的静态方法。访问Math类的静态方法,s:property value=”max(2,3)”/其它类不能用此方法。45、 访问普通类的构造方法46、 访问普通类的集合:a) 访问list和数组一模一样:b

20、) 访问list某个元素:c) 访问list某个属性集合:,在ognl里可以代表一个集合。返回users里age的那个集合。d) 访问list某个属性集合中某个特定值:或e) 访问Set集合:f) 访问Set某个元素:(一般取不到,因为Set里元素没有顺序。没有意义)g) 访问Map集合:h) 访问Map中某个元素:i) 访问Map中所有的key:j) 访问Map中所有的value:k) 访问Map的大小:47、 投影(过滤)a) ,这样比较users里的每一个对象,进行比较,得出结果。只有?#或$#或#这三种b) 1.age”/大于1集合里元素的第一个。c) 1.age”/大于1集合里元素的

21、结尾的一个。d) 1.age=null”/输出true/false48、 用访问元素:访问ognl里面的对象集合。可以第一个Action里没有username没有,则继续找。当内部服务器跳转时候可能会产生值栈里两个Action。可能会更多。49、 在ognl里面可以用一个单引号代表一个双引号。不能跟java混淆50、 Js动态的指定连接内容:onclick=”javascript:documents.f.action=login1; document.f.submit();” onclick=”javascript:documents.f.action=login2; document.f.s

22、ubmit();”51、 Stack Context.顾名思义,栈的上下文环境.访问的时候,通过#key来访问.如下:假设reques中有名为obj属性的值.使用OGNL表达式访问.这样就可以取到stack Context中的值. 52、 Struts-tags53、 多做试验Generic Tag Refernce54、 标签里有的是ognl表达式,有的是字符串。由于value是一个object表达式,所以struts2会把username解析为ognl表达式,若想传真真的字符串,只能:55、 如果值取不到,可以用这个方法设置默认值:56、 设定HTML: s:property value=

23、” escape=”false”/默认escape为true.默认不会转换为html语言。Escape是否解析与html相关的字符串。57、 Set标签:(一般很少用,一般用来换名字用。如果变量名太长,但是用到多次就可以用来换行)a) 设置变量的值。Var变量名,value值:,默认(scope范围为Action)放在request和ActionContext里面.b) 从reuqest取值:c) 从ActionContext取值d) 从相应的范围取值:如果能取出来说明在我们配置文件已经有这个属性了。e) 设定var 范围为ActionContext:其中name已经被废弃了。f) 从相应的范围取值:就直接用#username取不到,2.1就算你用了var在ActionContext里面也不能用#username取到值。58、 Bean标签a) 定义bean并使用param来设定新的属性值。b) 定义的bean在debug里如果不定义变量是找不到的:,会显示在Stack Context.把改成,就可以在value Stack Contents里看到Dog对象了。放到栈里面去。当s:bean结束后就从栈里拿走了,就不能访问了。c) 这样是不行的,他会把dagou当成是ognl表达式,所以找不着。59、 Include标签(很少用)(中文不能)a) s

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

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