Action的方法访问
-------------------siwuxie095
Action 的方法访问
Action 的方法访问方式共有三种,如下:
1、通过 method 属性的配置实现
在 action 标签的 method 属性中配置执行 Action 中的某个方法
(1)编写 Action
BookAction.java:
|
package com.siwuxie095.action; import com.opensymphony.xwork2.ActionSupport; public class BookAction extends ActionSupport { //添加 public String add() { System.out.println("--- add ---"); return NONE; } //修改 public String update() { System.out.println("--- update ---"); return NONE; } } |
(2)配置 Action
struts.xml:
|
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 配置 Action 的方法访问 --> <package name="methoddemo" extends="struts-default" namespace="/"> <!-- method 属性:Action 中要执行的方法的名称 --> <!-- 执行 add() 方法 --> <action name="addAction" class="com.siwuxie095.action.BookAction" method="add"></action> <!-- 执行 update() 方法 --> <action name="updateAction" class="com.siwuxie095.action.BookAction" method="update"></action> </package> </struts> |
(3)访问路径
1)http://localhost:8080/工程名/addAction
2)http://localhost:8080/工程名/updateAction
「最好加上 .action 后缀,以防某些浏览器无法访问」
缺陷:
Action 中的每个方法都需要进行配置,如果 Action 中
有很多方法,就要配置很多 Action
2、通过通配符的配置实现
在 action 标签的 name 属性中使用通配符 * 代表任意字符
(1)编写 Action(同上 BookAction.java)
(2)配置 Action
struts.xml:
|
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 配置 Action 的方法访问 --> <package name="methoddemo" extends="struts-default" namespace="/"> <!-- name 属性:在其中配置通配符 * method 属性:{1} 代表 name 属性中出现的第一个 * 所代替的字符 执行 Action 的 add() 方法,访问 book_add 执行 Action 的 update() 方法,访问 book_update --> <action name="book_*" class="com.siwuxie095.action.BookAction" method="{1}"></action> </package> </struts> |
(3)访问路径
1)http://localhost:8080/工程名/book_add
2)http://localhost:8080/工程名/book_update
「最好加上 .action 后缀,以防某些浏览器无法访问」
3、通过动态方法访问的配置实现(不建议)
动态方法访问在 Struts2 中默认是不开启的,如果需要使用需要先开启一个常量
|
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> |
(1)编写 Action(同上 BookAction.java)
(2)配置 Action
struts.xml:
|
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> <!-- 配置 Action 的方法访问 --> <package name="methoddemo" extends="struts-default" namespace="/"> <!-- name 属性:在其中配置通配符 * method 属性:{1} 代表 name 属性中出现的第一个 * 所代替的字符 执行 Action 的 add() 方法,访问 book_add 执行 Action 的 update() 方法,访问 book_update --> <action name="bookAction" class="com.siwuxie095.action.BookAction"></action> </package> </struts> |
(3)访问路径
1)http://localhost:8080/工程名/bookAction!add
2)http://localhost:8080/工程名/bookAction!update
「最好加上 .action 后缀,以防某些浏览器无法访问」
补:
1、如果 Action 方法有返回值,在配置文件中没有配置 或 配置不一致,会报错
2、Action 方法可以有返回值,但返回值类型必须是 String
3、Action 方法可以没有返回值,此时,不需要配置 result 标签
1)法一:返回值类型为 void
2)法二:返回值类型为 String,返回 NONE 或 "none"
【made by siwuxie095】
Action的方法访问的更多相关文章
- [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Struts2框架之Action类的访问
1. 通过<action>标签中的method属性,访问到Action中的具体的方法. * 传统的配置方式,配置更清晰更好理解!但是扩展需要修改配置文件等! * 具体的实例如下: * 页面 ...
- Struts2_day01--访问action的方法
访问action的方法(重点) 1 有三种方式实现 第一种 使用action标签的method属性,在这个属性里面写执行的action的方法名称 第二种 使用通配符方式实现 第三种 动态访问实现(不用 ...
- struts2学习笔记之八:Action中方法的动态调用
方法一:action名称+!+方法名称+后缀 Action类中增加addUser()和delUser()方法, package com.djoker.struts2; import org.apach ...
- Apache HttpComponents Client 4.0快速入门/升级-2.POST方法访问网页
Apache HttpComponents Client 4.0已经发布多时,httpclient项目从commons子项目挪到了HttpComponents子项目下,httpclient3.1和 h ...
- struts2的Action该方法不能去
最近做的一个特征,使用struts2,input标签内容,并与相应的内容背景的实体类,当提交方法,无法进入action该方法和程序没有报错被,检验N通方法还没有找到,查找终于找到了,它是input标签 ...
- OpenCV不同类型Mat的at方法访问元素时该如何确定模板函数的typename(转)
自从OpenCV推出了Mat后越来越像是Matlab了,使用起来方便了很多,但是,在用at方法访问Mat时,如何选用合适的typename类型来访问相应的Mat元素是个头疼的问题. 比如: int H ...
- 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...
- Controller层的方法访问标志与Spring装配与AspectJ切面处理
最近在做AspectJ实现的日志模块,在spring配置中加入了<aop:aspectj-autoproxy/>,之后发现,只要有用到自定义注解的类,某些方法经MVC请求时就报空指针错误. ...
随机推荐
- Python 3 利用 Dlib 实现人脸检测和剪切
0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切: 1. crop_faces_show.py : 将检测到的人脸剪切下来,依次排序平 ...
- WebApi FormData+文件长传 异步+同步实现
// POST api/values public async Task Post() { try { // 检查该请求是否含有multipart/form-data if (!Request.Con ...
- VS2017更新后无法使用stdlib.h
这几天用VS写代码,每次打开工程就卡死,在网上找不到解决方法,于是想更新下vs碰碰运气. 更新后,打开速度恢复往日那般,但是代码中,提示我找不到 stdlib.h. 于是在电脑中,搜寻stdlib.h ...
- .NET的URL重写
[概述] URL重写就是首先获得一个进入的URL请求然后把它重新写成网站可以处理的另一个URL的过程.重写URL是非常有用的一个功能,因为它可以让你提高搜索引擎阅读和索引你的网站的能力:而且在你改变了 ...
- 27 mysql主从出现错误
大多数的互联网应用场景都是读多写少,在发展过程中可能会出现读性能问题,在数据库层解决读性能问题:一主多从 下面是多主从结构 虚线箭头表示主备关系,A与A’互为主备,从库B,C,D指向主库A,一主多从的 ...
- 019:InnoDB 表空间内部组织结构
一. 表空间内部组织结构 表空间 内部有多个段对象(Segment) 组成 每个段(Segment)由区(Extent) 组成 每个区(Extent)由页(Page)组成 每个页里面报存数据 (或者叫 ...
- scrapy-redis组件
scrapy-redis组件 可以帮你保存任务和过滤url redis 数据库 安装 # 下载 wget http://download.redis.io/releases/redis-3.0.6.t ...
- 【转】WebAPI使用多个xml文件生成帮助文档
来自:http://www.it165.net/pro/html/201505/42504.html 一.前言 上篇有提到在WebAPI项目内,通过在Nuget里安装(Microsoft.AspNet ...
- MySql命令集合
1.mysql命令用户连接数据库 mysql命令格式: mysql -h主机地址 -u用户名 -p用户密码 (1) 连接到本机上的MYSQL 首先打开DOS窗口,然后进入目录mysql\bin,再键入 ...
- VMware 虚拟机中添加新硬盘的方法(转载)
随着在虚拟机中存储的东西的逐渐的增加,虚拟机的硬盘也逐渐告急,因此急需拓展一块新的虚拟磁盘.以下便是在VMware 中添加新的虚拟磁盘的方法: 一.VMware新增磁盘的设置步骤 (建议:在设置虚 ...