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>
<!-- 2.5版本及以上必须配置<allowed-methods>标签,允许的方法 -->
<allowed-methods>add,delete,update,select</allowed-methods>
</action>
</package>
JavaEE笔记(六)的更多相关文章
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:/ ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Python学习笔记六
Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime ti ...
- Typescript 学习笔记六:接口
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Django开发笔记六
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...
- python3.4学习笔记(六) 常用快捷键使用技巧,持续更新
python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- 【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- Linux学习笔记(六) 进程管理
1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...
随机推荐
- GoldenGate搭建与运维
GolenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库实时 ...
- 如何将同一 VNET 下的虚拟机从经典部署模型迁移到 Azure Resource Manager
本文内容 适用场景 解决方案 适用场景 用户拥有多个云服务但是在同一个 VNET 下,希望将这些虚拟机从经典部署模型(以下简称:ASM)迁移到 Azure Resource Manager(以下简称: ...
- [VS2015] [asp.net] 允许远程访问本机正在DEBUG的服务
一.打开并编辑解决方案目录(不是工程目录)下的文件: \.vs\config\applicationhost.config 增加黑体行: <site name="XXXX" ...
- 借助System.Linq.Dynamic, IQueryable根据排序字符串排序
在使用Entity Framework时,若有多个排序,需要OrderBy (OrderByDescending)再ThenBy (ThenByDescending) 假设需要根据Name升序排序,再 ...
- 第一个 mac 程序 Create-JSON-Model
第一个 mac 程序 Create-JSON-Model 效果图 数据 {"ID":null,"name":"Doe","firs ...
- [C++] 用Xcode来写C++程序[7] Class
用Xcode来写C++程序[7] Class 不带构造函数的Rectangle类 // // Rectangle.h // Plus // // Created by YouXianMing on 1 ...
- Oracle创建Rman备份专用账户
有时会因为信息安全需要,创建备份所需的专用账户,不适用sys等用户.可以使用如下方式:create user rman_ycr identified by oracle;grant create se ...
- #003 React 组件 继承 自定义的组件
主题:React组件 继承 自定义的 组件 一.需求说明 情况说明: 有A,B,C,D 四个组件,里面都有一些公用的逻辑,比如 设置数据,获取数据,有某些公用的的属性,不想在 每一个 组件里面写这些属 ...
- 【C#】#102 发送邮件
项目需求:定时的发送邮件,于是学习了如何发送邮件 下面有一个简单的例子.能够实现简单的发送邮件,加上附件可以添加一个属性[Attachment],然后配置上附件的路径 Demo下载 代码总共只有一下这 ...
- 使用FASTJSON做反序列化的时间格式处理
JSONObject.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.mmm"; Productorder tmp1 = JSONObj ...