JavaEE笔记(六)

实现Action的几种方法
1. implements Action
2. extends ActionSupport
3. 也可以不继承任何父类不实现任何借口

#当一个类有多个方法

package com.struts.test;
import com.opensymphony.xwork2.ActionSupport;
public class Test extends ActionSupport {
    private static final long serialVersionUID = 1L;

    @Override
    public String execute() throws Exception {
        System.out.println("execute");
        return SUCCESS;
    }

    public String add() throws Exception {
        System.out.print("add");
        return "add";
    }

    public String update() throws Exception {
        System.out.print("update");
        return "update";
    }

    public String delete() throws Exception {
        System.out.print("delete");
        return "delete";
    }
}

如上方法,里面有add()、update()、delete();
这么多方法该如何配置?
1. 配置多个action

<package name="struts_two" extends="struts-default">

    <!-- 执行Test类中的update方法 -->
    <action name="test_one_struts" class="com.struts.test.Test" method="update">
        <!-- 返回跳转到Test_update.jsp页面 -->
        <result name="update">/Test_update.jsp</result>
    </action>

    <!-- 执行Test类中的delete方法 -->
    <action name="test_one_struts" class="com.struts.test.Test" method="delete">
        <!-- 返回跳转到Test_delete.jsp页面 -->
        <result name="delete">/Test_delete.jsp</result>
    </action>

    <!-- 执行Test类中的add方法 -->
    <action name="test_one_struts" class="com.struts.test.Test" method="add">
        <!-- 返回跳转到Test_add.jsp页面 -->
        <result name="add">/Test_add.jsp</result>
    </action>
</package>

2.动态配置(不推荐)

<!--#2.5版本需要打开动态配置
<constant value="true" name="struts.enable.DynamicMethodInvocation"/>
-->
<package>
    <action name="test_one_struts" class="com.struts.test.Test">
        <result name="update">/Test_update.jsp</result>
        <result name="delete">/Test_delete.jsp</result>
        <result name="add">/Test_add.jsp</result>
    </action>
</package>

3.通配符配置(推荐)

<package>
    <!--
    * 通配符
    根据你输入的路径来判断你是执行什么方法
    比如:你输入 Test_delete,那么就会执行Test_类的delete方法,并且跳转到对应的页面
    -->
    <action name="Test_*" class="com.struts.test.Test" method="{1}">
        <result name="{1}">/Test_{1}.jsp</result>
    </action>
</package>
时间: 2024-10-14 16:50:36

JavaEE笔记(六)的相关文章

python之raw_input()(学习笔记六)

python之raw_input()(学习笔记六) 我们经常使用raw_input()读取用户的输入,如下例子所示: >>> name = raw_input('please input your name:'),截图如下: 下面简单说下,raw_input()与if搭配使用,脚本如下: #!/usr/bin/env python # -*- coding:utf-8 -*- birth = raw_input('birth:') if birth < 2000: print '0

swift学习笔记(六)析构过程和使用闭包对属性进行默认值赋值

一.通过闭包和函数实现属性的默认值 当某个存储属性的默认值需要定制时,可以通过闭包或全局函数来为其提供定制的默认值. 注:全局函数结构体和枚举使用关键字static标注    函数则使用class关键字标注 当对一个属性使用闭包函数进行赋值时,每当此属性所述的类型被创建实例时,对应的闭包或函数会被调用,而他们的返回值会被作为属性的默认值. ESC: Class SomeCLass{ let someProperty:SomeType={ //给someProperty赋一个默认值 //返回一个与

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

Learn Java for Android Development Second Edition 笔记(六)- Interface

Interface Java里用interface关键字,引入一种没有具体实现的类型. Declaring Interfaces interface一般以大写字母开头,able单词结束,如下例子: interface Drawable { int RED = 1; // For simplicity, integer constants are used. These constants are int GREEN = 2; // not that descriptive, as you wil

初探swift语言的学习笔记六(ARC-自动引用计数,内存管理)

Swift使用自动引用计数(ARC)来管理应用程序的内存使用.这表示内存管理已经是Swift的一部分,在大多数情况下,你并不需要考虑内存的管理.当实例并不再被需要时,ARC会自动释放这些实例所使用的内存. 另外需要注意的: 引用计数仅仅作用于类实例上.结构和枚举是值类型,而非引用类型,所以不能被引用存储和传递. swift的ARC工作过程 每当创建一个类的实例,ARC分配一个内存块来存储这个实例的信息,包含了类型信息和实例的属性值信息. 另外当实例不再被使用时,ARC会释放实例所占用的内存,这些

Linux System Programming 学习笔记(六) 进程调度

1. 进程调度 the process scheduler is the component of a kernel that selects which process to run next. 进程调度器需要使 处理器使用率最大化,并且提供 使多个进程并发执行的虚拟 Deciding which processes run, when, and for how long is the process scheduler's fundamental responsibility. 时间片:th

老男孩培训视频听课笔记六(在51cto上听的)

有关Centos6.4 x86_64在虚拟机上的安装问题:  1.硬件CPU支持虚拟化技术(前面) 2.创建虚拟机时内存到少大于512M,最好是1G以上 3.安装之后启动虚拟机至少512M内存,否则可能报错 Centos 5.8安装256M即可,启动128M就可以了   Centos 6.4的安装: 1.新建一个虚拟机    新建:c6.4-->nvm-自定义-->8.0-->至后安装系统-->centos 6(other linux 2.6.x kernel 64bit-->

悟道—位IT高管20年的职场心经(读书笔记六)

悟道--一位IT高管20年的职场心经 第七章  关于销售 用"最"来形容公司的销售,可以用上若干的词汇: 最牛,最累,最精,最傻,最有钱,最贱,最能吹,最能装... 1.1  销售人得基本素质 善胜者不争,善争者不战,善战者不败,善败者不乱. 五勤:嘴勤.腿勤.手勤(勤读勤记).耳目勤(多看多听).脑勤(勤思勤省). 能吃苦:身体之苦,巨大的心理压力. Not too hard, to be smarter! 1.2  销售VS前锋 最重要的是"临门一脚".拿下单子

Lua学习笔记(六):函数-续

Lua中的函数是带有词法定界(lexical scoping)的第一类值(first-class values).第一类值指:在Lua中函数和其他值(数值.字符串)一样,函数可以被存放在变量中,也可以存放在表中,可以作为函数的参数,还可以作为函数的返回值.词法定界指:嵌套的函数可以访问他外部函数中的变量.这一特性给Lua提供了强大的编程能力. Lua中关于函数稍微难以理解的是函数也可以没有名字,匿名的.当我们提到函数名(比如print),实际上是说一个指向函数的变量,像持有其他类型的变量一样:

laravel3学习笔记(六)

原作者博客:ieqi.net ==================================================================================================== ORM Laravel3中MVC体系中Model里最重要的组成部分无疑是ORM了,ORM — object-relational mapper — 将数据操作面向对象化,使得整个web框架的核心风格统一,降低整体复杂度,为开发者提供便利. Laravel3中的ORM叫