`
mytream
  • 浏览: 73195 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Struts2学习笔记(一)——命名空间、路径、通配符

    博客分类:
  • MVC
阅读更多


一.命名空间

namespace决定了action的访问路径,默认为"",可以接收所有路径的action
namespace可以写为/,或者/xxx,或者为/xxx/yyy,对应的action访问路径为/index.action,/xxx/index,或者/xxx/yyy/index.action
namespace最好也用模块来进行命名
二.路径问题

Struts2中的路径问题是根据action的路径而不是jsp路径确定,因为action是经过转发请求给某个jsp页面,浏览器中显示的路径并没有发生变化,相对路径是相对于当前显示的页面,所以尽量使用绝对路径而不是相对路径。
获取绝对路径的方法如下:
<%
String path = request.getContextPath();//取得根路径(即项目名)
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";//取得协议名、IP(或域名)、端口名
在head标签中加上:
<base href="<%=basePath %>"/>//加上此句之后就可以直接使用相对路径了,相对于应用程序的跟路径即可
如果没有加上这一句,可以在相对路径之前加上basePath即可
三.配置文件struts.xml中通配符的使用

看下面的action配置

<package name="actions" extends="struts-default" namespace="/actions">
        <action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">
            <result>/Student{1}_success.jsp</result>
        </action>
        
        <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
            <!-- {0}_success.jsp -->
        </action>
</package>
 
使用通配符配置,我们能将配置量降到最低
比如我们在地址栏中输入....../Studentadd访问到的便是对应action中的add方法(method={1}),处理之后请求转发到Studentadd_success.jsp页面(/Student{1}_sucess.jsp)
我们注意到通配符可以有多个,我们可以用{}加上下标来访问,下标是从1开始的,在另外一个action中就是这样
显然我们不能输入随便一个字符串来访问某个页面,前提是这个页面是存在的,这就要求我们要实现已经写好了这些页面。我们要遵循“约定优于配置”的原则
   
三.如何在action中取得请求中的参数
我们先看一个action
public class UserAction extends ActionSupport {
        private String name;
        private int age;

        public String add() {
                System.out.println("name=" + name);
                System.out.println("age=" + age);
                return SUCCESS;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getAge() {
                return age;
        }

        public void setAge(int age) {
                this.age = age;
        }
}
 
我们并没有像Struts那样通过一个HttpServletRequest对象取得请求中的参数,而是在action中通过setXXX方法来设置它的属性的值。这个调用是Struts2的核心控制器完成的,在action创建之后,如果存在请求字符串,控制器会调用action的setXXX方法来传入相应的值,如访问.../xxx/xxx?name=xiaoming&age=8,控制器分别调用setName和setAge方法

 

分享到:
评论

相关推荐

    Struts2_Action学习笔记、通配符{1},{2}

    ### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...

    struts2 学习笔记 实战

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace ...

    Struts2学习笔记

    ### Struts2学习笔记知识点概览 #### 一、Struts的作用 - **核心功能**:Struts2框架的核心功能之一就是将业务逻辑与展示层分离,实现MVC(Model-View-Controller)架构模式。这有助于提高代码的可维护性、可扩展...

    Struts2 学习笔记.doc

    Struts2是一个强大的MVC(Model-...以上是Struts2学习笔记的主要内容,涵盖了Struts2的基本架构、核心概念以及常用配置。通过深入理解和熟练掌握这些知识点,开发者能够有效地利用Struts2框架构建健壮的Web应用程序。

    struts2.0学习笔记

    本篇学习笔记将深入探讨Struts2.0的核心概念和配置,帮助你理解和掌握这个框架。 **一、Struts2的作用** Struts2的主要目标是提供一种结构化的开发方式,它整合了请求处理、视图展示和业务逻辑的交互。通过使用...

    struts2学习笔记

    Namespace是Struts2中用于组织Action的一个概念,类似于URL路径的一部分,可以避免Action命名冲突。Namespace可以嵌套,提供更灵活的路由策略。 **四、标签** `&lt;package&gt;`标签用于定义一组相关的配置,包括Action、...

    Struts2 学习笔记

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

    struts2课程笔记

    Struts2 是一款流行的Java开源框架,用于构建企业级Web应用程序。它主要解决了传统Servlet API在处理请求转发和业务逻辑分离上的不足。本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,...

    Struts2框架笔记

    Struts2是一个开源的Web应用程序框架,基于MVC(Model-View-Controller)架构模式。它为Java Web开发者提供了一个强大的平台来构建高度可扩展的应用程序。Struts2的核心组件包括Action、Interceptor、Result等。 ##...

    struts2通配符示例代码

    在Struts2的配置中,通配符(Wildcard)的使用是一个非常实用的功能,它使得URL映射更加灵活,减少了重复配置。下面将详细解释Struts2通配符的用法,并结合示例代码进行解析。 1. **Struts2通配符概述** Struts2的...

    struts2利用通配符调用同一个Action里面不同的方法

    在Struts2中,Action是业务逻辑处理的核心,而通配符的使用则是Struts2框架中一种灵活的配置方式,允许我们以更简洁的方式调用同一个Action中的不同方法。下面我们将深入探讨如何利用Struts2的通配符来实现这一功能...

    马士兵struts2课程的学习笔记

    Struts2是一个流行的Java Web应用程序框架,用于构建...以上就是Struts2课程学习笔记中的主要知识点,涵盖了从基础配置到高级特性的多个方面。理解和掌握这些内容,有助于深入学习和使用Struts2框架进行Java Web开发。

    Struts2 开发笔记

    Namespace是Struts2中的命名空间,用来组织Action,防止Action之间的命名冲突。Namespace可以看作是Action的虚拟目录,使得请求可以根据不同的命名空间映射到不同的Action。 四、标签: 标签在Struts2配置文件中...

    Struts2通配符

    本文主要介绍Struts2中的通配符配置,这是一种非常实用且灵活的方式来处理复杂的URL映射。 #### 二、Struts2中的Action配置 在Struts2中,`Action`是框架的核心组件之一,用于处理用户的请求。`Action`接口定义了...

    Struts2教学视频

    Namespace是Struts2中用于组织Action的一种方式,可以看作是Action的命名空间。它有助于避免Action名称冲突,同时提供了更灵活的URL映射策略。 **四、标签** 标签在struts.xml中定义一个配置包,可以包含多个Action...

    struts2的学习笔记+测试源代码

    这个学习笔记和测试源代码着重讲解了Struts2中Action路径的搜索顺序,这对于理解和调试Struts2应用至关重要。 在Struts2框架中,Action路径是用户请求与实际处理该请求的Action类之间的桥梁。当一个HTTP请求到达...

    Struts2中使用通配符优化配置

    在Struts2中,使用通配符优化配置是实现这一目标的有效手段。通配符允许开发者以一种更加灵活的方式定义Action,避免了为每一个Action单独编写配置项的繁琐工作。 首先,我们来理解一下什么是通配符。在Struts2的...

Global site tag (gtag.js) - Google Analytics