`

Struts2的复习总结

阅读更多

1.web.xml格式。


2.struts.xml中的namespace和访问路径有关系。就是项目名后面跟的路径。

   package中的extends默认为struts-default,也可以改为其他包名,例如:

           packag A extends="B" //B包中的action,A包可以直接拿过来用了


3.struts.xml中<constant name="struts.devMode" value="false">讲value改为true,开发模式。当改了struts.xml文件时,不用重新启动服务。


4.用户在浏览器中输入url时,会用http协议发送给Tomcat,Tomcat根据url解析出是哪个web项目。确定哪个web项目后,就去读那个项目的web.xml文件。
web.xml中会配置struts2的filter,发送过来的请求就会交给这个filter来处理。filter配置了处理的类,处理时会调用类里的doFilter()方法。
这方法的处理会参考struts.xml,先在struts.xml中namespace,然后找对应的action,然后再找对应的result,当找到这个result会把这个请求forword给result中配置的jsp文件。jsp文件把内容反馈给客户端,呈现给用户。见下面附件“struts对用户的请求的处理过程”。

 

4.在struts的配置文件中,package中的name用来区分重名的action,作用就像Java的package一样。

   而package中的namespace和访问路径有关系。namespace必须用“/”开头。

   namespace默认为“”,当namespace不写,即为空时,要找一个XXXX.action,没有找到精确的和它对应的时候,全都交给namespace为空的这个package,也就意味这个package囊括了其他action处理不了的action.

 

5.如果action中没有配置method,会默认去那个action中执行execute()方法。没有配置result,默认为success.

   自己写的action要继承自ActionSupport.java类,里面定义了很多方法,可以拿过来使用。

 

6.struts中的路径是根据action的路径,而不是jsp路径,所以尽量使用绝对路径。设置绝对路径的方法

   两种方法,见附件2和3

 

7.action执行的时候并不一定要执行execute方法,可以再配置文件里配置method,也可以再url中动态指定(动态方法调用DMI),格式为:action名字+!+方法名

 

8.struts2的简单数据验证:

 (1)后台:this.addFiledError("name","name is error !");  //可以用一个key,对应多个value.

         前台:使用struts2的标签库<%@ taglib uri="/struts-tags" prifix="s"  %>

                  <s:fielderror fieldName="name"/>        ------显示效果: . name is error(加上了样式)

                  <s:property value="errors.name[0]" />------显示效果: name is error

 

 9. 在action中怎样获得request、session、application

    方法一:

       Map request = ActionContext.getContext.get("request");

       Map session = ActionContext.getSession();

       Map application = ActionContext.getApplication();

       使用:

       request.put("r","r");

       session.put("s","s");

       application.put("a","a");

       前台怎样获得:

       <s:property value="#request.r">      ||  <%=request.getAttribute("r") %>

       <s:property value="#session.s">      ||  <%=session.getAttribute("s") %>

       <s:property value="#application.a"> ||  <%=application.getAttribute("a") %>

   方法二:(最常用的)

       action实现接口RequestAware,SessionAware

       然后再action中定义属性Map request,Map session,加上getter和setter,就可以直接拿过来用了。

  方法三:(现公司所用)

       HttpServletRequest  request = ServletActionContext.getRequest();

       HttpSession  session = request.getSession();

 

10.struts.xml中result类型

     (1)默认类型为dispatcher:服务器端跳转,利用服务器跳转到结果页面。forward,跳转,浏览器中显示的是action的地址。只能跳转到页面,不能调整到一个action.

     (2)redirect:客户端跳转。浏览器中显示的jsp的地址。也不能调整到action,

     (3)chain:可以跳转到action

                    用法:跳转到所属包里的action,直接跟action名称

                             跳转到其他包里的action,写法如下:

                             <result type="chain">

                                      <param name="actionName">.....(action的名称)</param>

                                      <param name="namespace">/abc...</param>

                             </result>

 

     (4)全局结果集

             每个action里有要配置相同的一个result,此时可以配置一个全局结果集来代替。

             用法<global-result>

                                <result type="....">xxx.jsp</result>

                      </global-result>

 

    (5)动态结果集

            跳转的页面时动态配置的,写法如下:

           action中这样写:

                   if(type == 1){

                         r = "success.jsp ";         //type和r是action的两个属性,要有get和set方法

                   }else if(type == 2){

                         r = "error.jsp ";

                   }

            struts.xml这样配置:

                   <result>${r}</result>

 

11.OGNL(object graph navigation language)——对象图导航语音

(1)在action里有个对象属性时,action在初始化时,要想把包含的对象也初始化话,此时必须给哪个地下传值。同时该对象所属的类必须要有一个空的构造函数。当然也可以自己在action里new那个对象。

 

 12.struts标签

   先引入标记<%@ taglib prefix="s" uri="/struts-tags"%>

  (1)通用标签

         a)property

            eg:<s:property  value="username"  defalut="Daisy" />

                 <s:property  value="#request.username"   />request中取属性,session,application用法一样。

                 <s:property  value=" '<hr/>' "  escape="false" />,escape默认为true,

                  escape为false时,当value里的值不是堆栈里的属性,而是一个普通的html相关标签时,不将该标签转成普通字符串,将当一个html标签。(不常用)

         b)set标签用于生成一个新变量,并把该变量放置到指定的范围内

            eg:<s:set var="adminName" value="username"> //此时的value不是个字符串,而是个Object。

                  name: 可选,变量的名字 ,2.1版本此属性以废弃,以后不要用了。
                  scope 可选,指定新变量被放置的范围,该属性可以接受application、session、request、page或action 5个值。如果没有指定,默认是放置在action中。

                  value 可选,指定将赋给变量的值。

                  var 可选,指定该元素的引用ID。

         c)bean和param新建一个bean的对象,通过param对其属性进行赋值

            eg:<s:bean name="com.simlink.ckxgjl.DcjlAction" var="ckDcjl">

                         <s:param  name="username"  value=" 'Daisy' "></s:param>

                         //value里不加单引号就是ongl,加了单引号就是普通字符串

                 </s:bean>

         d)include

             eg:<s:include value="xxxx.html"></s:include>

         e)fielderror

             eg:<s:fielderror fieldName="username"></s:fielderror>

         f)debug:可以看堆栈

  (2)控制标签

          a)if——elseif——else

              eg:<s:if  test="user.age < 18">未成年</s:if>

                   <s:elseif  test="user.age > 18">成年了</s:elseif>

                   <s:else>数字不合法</s:else>

          b)iterator

               <s:iterator  value="{1,2,3}"  var="v"  status="status"> //集合中每取一个值都放在v中

                       <s:property />   //遍历集合里的每个元素

                       <s:property  value="#status.count" /> //遍历过的元素总数

                       <s:property  value="#status.index" /> //当前是第几个元素

                       <s:property  value="#status.even" />  //当前是否是偶数

                       <s:property  value="#status.odd" />    //当前是否是奇数

                       <s:property  value="#status.first" />    //当前是否是第一个

                       <s:property  value="#status.last" />    //当前是否是最后一个

               </s:iterator>

               遍历一个map

               <s:iterator  value="#{1:'a', 2:'b', 3:'c'}">

                        <s:property  value="key" />

                        <s:property  value="value" />

               </s:iterator>

  (3)UI标签   

  (4)AJAX标签

 

 

 

 

 

 

 

 

  • 描述: struts对用户的请求的处理过程
  • 大小: 74.5 KB
  • 描述: struts路径解决方案一
  • 大小: 33.4 KB
  • 描述: sturts路径解决方案二
  • 大小: 39 KB
分享到:
评论
1 楼 imp860124 2011-01-25  
(5)处的Action 需要return Action.SUCCESS

相关推荐

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2入门实例1

    struts2 最新的入门实例 我自己总结的 呵呵,欢迎提出宝贵的意见 1.Struts2_01_login 对应登录。。 login.jsp---------------------------------------html标签的登陆页面 login_struts2.jsp--------------...

    struts2入门实例2 经典入门必备

    1.Struts2_01_login 对应登录。。 login.jsp---------------------------------------html标签的登陆页面 login_struts2.jsp-------------------------------采用struts标签的登陆页面 login_struts_...

    Struts1SpringHibernate整合总结

    ##### 2. 修改Struts1配置 为了让Struts1中的Action也能由Spring容器管理,需要修改Struts1的配置文件`struts-config.xml`。具体来说,将每个Action的`type`属性改为Spring提供的`DelegatingActionProxy`。 ```xml...

    struts2入门实例4 经典入门必备

    1.Struts2_01_login 对应登录。。 login.jsp---------------------------------------html标签的登陆页面 login_struts2.jsp-------------------------------采用struts标签的登陆页面 login_struts_...

    struts2入门实例3 经典入门必备

    1.Struts2_01_login 对应登录。。 login.jsp---------------------------------------html标签的登陆页面 login_struts2.jsp-------------------------------采用struts标签的登陆页面 login_struts_...

    Struts2入门笔记1-4

    4. 学习笔记的内容可能覆盖了Struts2的基础配置、核心概念、实战技巧和复习巩固,帮助读者逐步掌握Struts2框架的全貌。 以上内容只是根据提供的信息进行的推断和扩展,具体的学习笔记内容可能包括了更详细的技术...

    j2ee框架Struts2HibernateSpring考试复习题库.pdf

    总结起来,Struts2处理用户界面和控制流程,Hibernate负责数据持久化,而Spring则提供了整个应用的上下文和依赖管理。这三者结合,构建出强大的J2EE应用开发框架,广泛应用于大型企业的复杂系统中。了解并熟练掌握这...

    mvc以及struts2的游戏查询和添加小Demo

    “mvc以及struts2的游戏查询和添加小Demo”这个标题明确指出了本次讨论的主题,涉及两个核心概念:MVC(Model-View-Controller)设计模式和Struts2框架。这是一个关于如何使用Struts2实现MVC架构中的游戏数据查询和...

    燕山大学 spring hibernate struts 三大框架 期末复习资料

    - **拦截器 (Interceptor)**: 在 Struts2 中,拦截器是一个重要的概念,它可以拦截 Action 的执行过程,执行前置和后置操作。例如,可以在 Action 执行前后进行权限验证、日志记录等操作。 - **拦截器定义**: 拦截...

    Struts1.x笔记

    这是我看完传智播客Struts1视屏后对Struts1进行的总结,每次复习都是看这个,自认为还不错,希望对你有所帮助,如果您觉得还行的话,记得给好评哦!

    struts2+ibatis+spring 安例

    总结来说,这个实例旨在帮助开发者掌握Struts2、iBatis和Spring的整合应用,通过源码分析和实践操作,学习如何构建一个完整的Java Web项目。对于初学者,这是一次宝贵的实践机会;对于有经验的开发者,这也是复习和...

    Web框架技术期末复习提纲.doc

    本总结涵盖了 Web 框架技术的多个方面,包括 Struts2 框架、Hibernate 框架等。下面是详细的知识点总结: 一、Struts2 框架 1. Struts2 属于 Apache 基金会。 2. Struts2 的核心配置文件是 struts.xml。 3. 在 ...

    java面试复习总结.doc.docx

    Java面试复习总结主要涵盖了几大框架的技术点,包括Tapestry、Struts、SpringMVC、Spring、Hibernate和MyBatis,以及拦截器和过滤器的相关概念。 1. **Tapestry**: - Tapestry是一个MVC+模板技术的前端框架,其...

    java面试复习总结.doc.pdf

    Java面试复习总结主要涵盖了几大框架的特性与比较,包括Tapestry、Struts、SpringMVC、Spring、Hibernate和MyBatis。以下是对这些框架的详细解释: 1. **Tapestry**: - Tapestry是一个前端MVC框架,结合了模板...

    很全面的java全面复习总结

    里面有java基础,oracle,jsp,css,javascript,html,struts,等的详细总结,纯文本,有六七万字吧......

    北大青鸟S2复习题(5) ACCP4.0

    - **Struts2框架**: 学习Struts2框架的核心组件及其配置方式,了解其在构建企业级应用中的作用。 #### 5. 综合项目实践 - **需求分析与系统设计**: 学习如何进行项目的需求分析和系统设计,包括业务流程分析、模块...

    达内学习用的jdbc与struts笔记.pdf

    1. Struts复习 - 第一天:可能涵盖了Struts的基本概念,如MVC模式、Struts架构、配置文件(struts-config.xml)等。 - 第二天:可能深入讲解了Action类、Form Beans、ActionMapping和ActionForward等关键概念。 -...

    java培训个人总结.pdf

    Java培训个人总结主要涵盖了五个部分,分别是Java培训后的总结、Java实训个人总结、Java个人实习总结、Java培训课心得总结以及SSH框架的学习体会。以下是详细的知识点解析: 1. **Struts2**: - `Hello Struts2`...

    Struts+Spring+Hibernate配置说明

    ### Struts+Spring+Hibernate...这对于初学者来说是一次很好的实践机会,同时对于有经验的开发者来说也是一个不错的复习过程。在实际开发中,还需要根据具体需求对这些配置进行调整优化,以便更好地满足项目的需求。

Global site tag (gtag.js) - Google Analytics