`
zengshaotao
  • 浏览: 787387 次
  • 性别: 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学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    struts2学习笔记(1)

    ### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...

    struts2学习笔记

    以上就是Struts2学习笔记中涵盖的主要知识点,这些内容涵盖了从基础到进阶的应用,对于理解和掌握Struts2框架至关重要。尽管对于初学者来说可能有些复杂,但随着深入学习,你会发现Struts2的强大和实用性。

    struts 2 学习笔记

    在Struts2中,学习笔记通常会涵盖以下几个关键概念: 1. **源代码查看和Javadoc**:开发者可以通过查看源代码来理解Struts2的工作原理,而Javadoc则提供了API文档,帮助理解类和方法的功能。 2. **包(Package)和...

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

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    张龙圣思园struts2学习笔记word

    张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

Global site tag (gtag.js) - Google Analytics