`
zengshaotao
  • 浏览: 752663 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2学习笔记

 
阅读更多
1.在实际操作中学习,效果更佳。
struts1出现的比webwork早,技术不如webwork,所以开始合作,产生了strut2,不过主要用的
都是webwork的技术
2.3.j25.0集成了一些功能插件,jstl等。一个工程里,要部署服务器,还要加入安装的jdk,而不用
myeclipse自带的jre。一个软件,一个jar包,一本书,最开始是先熟悉其中的大概。
使用struts2的时候需要引入相关的jar包,配置文件,web.xml文件,参考网上已经存在的配置。
4.copy内容时不要删除,一般都是注释,以便后续的参考。打开jsp文件时最好使用jsp editor
不用上面是视图下面是代码的方式visual,因为运行比较慢。myeclipse版本高时就可以直接debug as server application,而不用手动。去部署
5.养成良好习惯,管理好磁盘里的软件,程序,技术视频等资料
6.配置文件改后不能立即生效。要想立即生效,需要配置常量
<constants name=“struts.devMode”  value="true">
虽然有jar里的class文件,但要想看源码,需要将源码放到本地再进行链接查看,假定class包路径是org.com....那么源文件的路径连接到org上层就可以。比如java.org.....我们只需链接到java层级便可以。
7.为xml文件添加头部的提示控制。也即添加dtd,或者schma
8.struts2的配置文件里,namespace的配置路径会被自动加载到访问的地址栏里和用户输入的地址进行匹配。
9.struts2执行过程。客户端通过浏览器发出请求,服务器收到请求后,找到对应的webapplication
并找到其中的web.xml文件,叫请求转到filter,filter根据struts2配置文件,去匹配相应的namespace,存在的话继续匹配namespace里面的name,找到之后,调用相应的action,action返回相应的字符串,并将请求换交给服务器,服务器再进行最后的跳转。
10.struts配置文件里的package和java的包的作用是一致的。
namespace=“/aaa”
<action name="bbb"> 那么访问路径是/aaa/bbb
namespace不写,则只要有对应的action就都可以访问。上面的就可以/fdfd/fdfd/dddddd/bbb也都可以访问的。假定工程名(application名字)为b,action name=“fdfd”,则b/...../fdfd,“....”之间的内容可以任意,并都可以访问fdfd
copy一个项目时需要更改webContextRoot,否则访问的结果还是原来的项目
引入别人的项目时需要使用自己的jdk环境,在building path路径里
11.由自己定义的action决定视图的转向。在window-preference里直接搜索jsp,然后改变其中的默认的页面编码。这个action对象是每次请求就都new一个。actionsupport是webwork的。
继承actionsupport,就集成了一些验证的方法,一般使用这种方式。直接继承action,一些验证方法无法使用。不继承,如果没有写execute方法就无法转向,语法上也没有提示。
12.路径问题。jsp页面里面的“/”表示不包括web工程名字的路径
当然也可以在页面设置一个<base href="<%=basePath%>>">指定所有的页面的链接从程序名开始
13.在action里配置method属性,调用action里的相应方法,而不是默认的execute
在Struts2中,访问同一个类中的不同方法时,可以定义多个action,如以下代码
1.<package name="user" extends="struts-default" namespace="/user">  
2.     <action name="userAdd" class="com.bjsxt.struts2.user.action.UserAction" method="add">  
3.        <result>/user_add_success.jsp</result>  
4.     </action>  
5.          
6.        <action name="user" class="com.bjsxt.struts2.user.action.UserAction" method="delete">  
7.            <result>/user_delete_success.jsp</result>  
8.        </action>  
9.    </package> 
但是,使用这种方式会产生很多的action,因此Struts2提供了另外一种方式,DMI即动态方法调用,如下:
Java代码 
1.<package name="user" extends="struts-default" namespace="/user">  
2.     <action name="user"  class="com.bjsxt.struts2.user.action.UserAction">  
3.            <result>/user_add_success.jsp</result>  
4.        </action>  
5.</package> 
<package name="user" extends="struts-default" namespace="/user">
     <action name="user"  class="com.bjsxt.struts2.user.action.UserAction">
            <result>/user_add_success.jsp</result>
        </action>
</package>
只需要定义一个action,定义多个result就可以,访问时通过如下方式访问:

[注]  使用DMI之前要确认struts.xml文件中DynamicMethodInvocation是否打开
Xml代码 
1.<constant name="struts.enable.DynamicMethodInvocation" value="true" /> 
 <constant name="struts.enable.DynamicMethodInvocation" value="true" />
如果没有打开会报类似下面的错误:
引用
There is no Action mapped for namespace /user and action name user!add.
14.通配符的配置。下标从1开始。前提是有很好的约定。
15.action传入和接受参数。1.6实现接口,可以写@override,1.5不行。tomcat服务器也是需要设置jdk版本的。有set方法后,属性就具有了被自动赋值的可能。
16.domainModel接收参数。相连带的是通过DTO,或者说VO的形式。因为属性多的话不能一个个接收,通过对象更为便捷。最终通过VO将参数传递给domainModel
17.modelDriver.需要实现modeldriver接口,实现它的getModel方法。该方法返回实体,并调用实体对象的set方法,进行初始化。
18。中文解决,换用过滤器
19.校验出错信息的提示。不想struts1一样,传入了request。
23.《incluede file="login.xml"》,对于模块开发比较方便,不会冲突。公用的配置在主文件里
24.默认的action。找不到对应的action,就会访问配置的默认的action。网址没有写明具体的action的话就会报错。no action maped
25.回顾
26.ActionContext。getContext()。getApplication()或者得到request
27.result 默认是forward的方式,可以指定type属性redireck,可以跳转到action里。action如果是同包的情况下(package),直接写名字就可以。
29:在action里通过配置param参数标签跳转到其他action里面
30. 全局配置是为了配置各个action里共同的跳转路径。拦截器和filter的原理是一致的。
31. 在配置文件里使用类似el表达式的语句。<result>${rr}</result>
对象的属性值是放在值栈里的。
32.forward的时候多个action共享一个值栈。
44.标签可分为通用标签,控制标签,ui标签,ajax标签
分享到:
评论

相关推荐

    struts2学习笔记(完美总结)——转自OPEN经验库

    struts2学习笔记,非本人所写,但有学习的价值,总结的很好,分享一个!

    struts2学习笔记总结

    struts2学习笔记总结

    struts2学习笔记

    struts2学习笔记struts2学习笔记struts2学习笔记

    struts2学习笔记3数据类型转换

    struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换

    struts2学习笔记.doc

    本人学习struts2的笔记,希望大家可以多多学习以后共同交流

    struts2学习笔记(1)

    1. struts2框架的引入 1)把struts2的相关jar包导入到项目中去 2)把struts2框架的配置文件struts.xml复制粘贴到项目中的src下面(同时也可以把log4j.properties放到src下) 在这里我们主要是要的这个struts.xml文件...

    struts2学习笔记(详细文字)

    structs2很详细的学习笔记,structs2的建造,工作原理,例子,逐步讲解,纯文字的

    Struts2 学习笔记

    01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 八、 Action通配符(wildcard)的配置 9 ...

Global site tag (gtag.js) - Google Analytics