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

传智Struts2笔记(7)

阅读更多
Struts2的处理流程

StrutsPrepareAndExecuteFilter是Struts 2框架的核心控制器,它负责拦截由<url-pattern>/*</url-pattern>指定的所有用户请求,当用户请求到达时,该Filter会过滤用户的请求。默认情况下,如果用户请求的路径不带后缀或者后缀以.action结尾,这时请求将被转入Struts 2框架处理,否则Struts 2框架将略过该请求的处理。当请求转入Struts 2框架处理时会先经过一系列的拦截器,然后再到Action。与Struts1不同,Struts2对用户的每一次请求都会创建一个Action,所以Struts2中的Action是线程安全的。


为应用指定多个struts配置文件


在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。下面的struts.xml通过<include>元素指定多个配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<include file="struts-user.xml"/>
	<include file="struts-order.xml"/>
</struts>


通过这种方式,我们就可以将Struts 2的Action按模块添加在多个配置文件中。

动态方法调用



如果Action中存在多个方法时,我们可以使用!+方法名调用指定方法。如下:
public class HelloWorldAction{
	private String message;
	....
	public String execute() throws Exception{
		this.message = "我的第一个struts2应用";
		return "success";
	}
	
	public String other() throws Exception{
		this.message = "第二个方法";
		return "success";
	}
}

假设访问上面action的URL路径为: /struts/test/helloworld.action
要访问action的other() 方法,我们可以这样调用:
/struts/test/helloworld!other.action
如果不想使用动态方法调用,我们可以通过常量struts.enable.DynamicMethodInvocation关闭动态方法调用。
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>


使用通配符定义action



<package name="itcast" namespace="/test" extends="struts-default">
	<action name="helloworld_*" class="cn.itcast.action.HelloWorldAction" method="{1}">
		<result name="success">/WEB-INF/page/hello.jsp</result>
	</action>
</package>


public class HelloWorldAction{
	private String message;
	....
	public String execute() throws Exception{
		this.message = "我的第一个struts2应用";
		return "success";
	}
	
	public String other() throws Exception{
		this.message = "第二个方法";
		return "success";
	}
}


要访问other()方法,可以通过这样的URL访问:/test/helloworld_other.action



分享到:
评论

相关推荐

    传智struts2.18笔记总结

    Struts2是一个强大的MVC(Model-View-Controller)框架,它源于WebWork,并在Struts1的基础上进行了改进。在Struts2版本2.1.8中,有一些关键点值得我们深入理解。 首先,环境配置是任何开发工作的基础。在这个版本...

    黑马程序员Struts2笔记

    7. **Struts2的异常处理** Struts2提供了全局和局部两种异常处理方式。全局异常处理可以在struts.xml中定义,对所有Action生效;局部异常处理则可以在Action类中定义,针对特定的Action或方法。 8. **OGNL表达式...

    传智struts从入门到精通视频+笔记+上课代码

    9. **Struts 2**:虽然资源名为"传智struts从入门到精通",但通常会涉及到Struts 1和Struts 2的对比,Struts 2在很多方面进行了改进,如使用更现代的OGNL表达式语言,提供更灵活的拦截器机制等。 10. **最佳实践**...

    传智播客struts2全程学习笔记

    ### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...

    自学传智博客struts2-黎活明-源码-第01讲_01介绍struts2及struts2开发环境的搭建_DemoStruts2.rar

    自学传智博客struts2-黎活明-源码-第01讲_01介绍struts2及struts2开发环境的搭建_DemoStruts2.rar; 笔记地址:http://www.guloulou.com/?p=1253

    传智博客黎活明 struts2

    传智博客__黎活明-struts2.ppt ,供学习配套视频

    传智播客最新Struts2PPT.ppt

    这是关于struts框架的笔记,是传智播客讲师编写的,................................................。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    传智播客 struts课程笔记 赖家材

    2. **框架概念与 Struts 体系结构**: - **框架概念**:框架是一种软件架构,为特定类型的软件应用提供了基础结构和支持服务。框架的特点在于其可重用性、可扩展性和灵活性,以及基于请求-响应模式的应用逻辑结构。...

    传智播客Struts2学习资料

    本资料包包含了关于Struts2的学习笔记和代码示例,旨在帮助初学者或进阶者深入理解并熟练掌握这一框架。 笔记部分可能涵盖以下知识点: 1. **Struts2基础**:介绍Struts2的基本概念,包括Action、Result、...

    传智播客struts2框架2016版视频教程笔记

    ### 传智播客Struts2框架2016版视频教程笔记 #### 概述 Struts2是一个用于构建企业级Java Web应用程序的开源框架。它基于MVC设计模式,能够帮助开发者更加高效地组织代码结构,并提供了一系列实用的功能,如拦截器...

    赖家材Struts 传智播客笔记下载

    ### 赖家材Struts 传智播客笔记知识点概览 #### 一、Struts 入门 ##### 1. Struts 入门简介 - **为什么使用 Struts**: - 建立在 MVC(Model-View-Controller)模式的基础上,Struts 主要在控制器(Controller)...

    传智168期JavaEE struts2杜宏 day 29~day31笔记.pdf

    标题中的“传智168期JavaEE struts2杜宏 day 29~day31笔记”暗示了文档是一系列关于JavaEE技术栈中的Struts2框架的课程笔记,由杜宏教授,并且特别强调了是从29天到31天的学习内容。JavaEE(Java Platform, ...

    传智的javaweb学习笔记,比较全的

    这份“传智的javaweb学习笔记”是针对这一领域的全面学习资料,主要包含了以下几个重要知识点: 1. **Servlet基础**:Servlet是JavaWeb的核心,用于处理HTTP请求。学习笔记可能详细解释了Servlet生命周期、如何创建...

    自学传智博客struts2-黎活明-源码-第02讲_02第一个struts2应用开发_DemoStruts2.rar

    本资源“自学传智博客struts2-黎活明-源码-第02讲_02第一个struts2应用开发_DemoStruts2.rar”提供了黎活明老师在传智博客上讲解的第一个Struts2应用的开发示例,帮助初学者理解并实践Struts2的核心概念和使用方法。...

    传智播客2016版hibernate+struts2+Spring框架资料课件+笔记

    《传智播客2016版hibernate+struts2+Spring框架学习资源详解》 在IT行业中,框架的使用是开发高效、稳定应用的关键。本资源包聚焦于三大主流Java Web框架:Hibernate、Struts2和Spring,它们在2016年时仍然是开发者...

    传智播客 hibernate笔记(word+pdf+源码)

    总的来说,这份【传智播客 Hibernate 笔记】是学习 Hibernate 及其在 SSH(Spring、Struts、Hibernate)框架中的应用的宝贵资源,涵盖了从基础到高级的各个方面,无论你是初学者还是有经验的开发者,都能从中受益。...

    传智168期JavaEE struts2杜宏 day32~day33笔记

    ### 传智168期JavaEE Struts2杜宏 Day32~Day33 笔记 #### OGNL介绍与简单使用 ##### OGNL概述 OGNL(Object Graphic Navigation Language)即对象图导航语言,是Struts2框架中使用的默认表达式语言。作为一种强大...

    struts2框架2016版资料day01

    通过传智播客的struts2框架2016版day01课程,你可以系统地掌握Struts2的基础知识,为后续的深入学习和项目开发打下坚实的基础。同时,结合笔记和思路图,可以更好地理解和吸收所学内容,提升学习效率。在实际编程中...

    Struts1.x笔记

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

Global site tag (gtag.js) - Google Analytics