1.传统的访问方式-很少使用

通过<action>标签中的method属性,访问到action中的具体方法

具体实现:

  1.action代码

import com.opensymphony.xwork2.ActionSupport;

/**
* action访问方式
* 演示传统的配置方式
* @author NEWHOM
*
*/
public class CustomerAction extends ActionSupport { private static final long serialVersionUID = 1L; public String add(){ System.out.println("添加Customer成功..."); return NONE;
} public String delete(){ System.out.println("删除Customer成功..."); return NONE;
} }

  2.配置文件代码

        <!-- 传统的配置方式 -->
<action name="Customer_add" class="com.struts2.web.action3.CustomerAction" method="add"/>
<action name="Customer_delete" class="com.struts2.web.action3.CustomerAction" method="delete"/>

  3.页面代码

    <h3>传统的配置方式</h3>
<a href="${pageContext.request.contextPath }/Customer_add.action">添加Customer</a>
<a href="${pageContext.request.contextPath }/Customer_delete.action">删除Customer</a>

2.通配符访问方式-经常使用

通配符的访问方式:(访问的路径和方法的名称必须要有某种联系.) 通配符就是 * 代表任意的字符  

  1.action代码

/**
* action访问方式
* 演示通配符的访问方式
* @author NEWHOM
*
*/
public class UserAction extends ActionSupport{ private static final long serialVersionUID = 1L; public String add(){ System.out.println("添加User成功..."); return NONE;
} public String delete(){ System.out.println("删除User成功..."); return NONE;
} }

  2.配置文件代码

        <!-- 通配符的访问方式 -->
<action name="User_*" class="com.struts2.web.action3.UserAction" method="{1}"/>

  3.页面代码

    <h3>通配符的访问方式</h3>
<a href="${pageContext.request.contextPath }/User_add.action">添加User</a>
<a href="${pageContext.request.contextPath }/User_delete.action">删除User</a>

3.动态的访问方式-很少使用

如果想完成动态方法访问的方式,需要开启一个常量,struts.enable.DynamicMethodInvocation = false,把值设置成true。
注意:不同的Struts2框架的版本,该常量的值不一定是true或者false,需要自己来看一下。如果是false,需要自己开启。
  1.action代码
/**
* action访问方式
* 演示动态的方式
* @author NEWHOM
*
*/
public class LinkManAction extends ActionSupport{ private static final long serialVersionUID = 1L; public String add(){ System.out.println("添加LinkMan成功..."); return NONE;
} public String delete(){ System.out.println("删除LinkMan成功..."); return NONE;
} }

  2.配置文件代码

    <!-- 开启动态访问的常量 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"/> <!-- 动态的访问方式 -->
<action name="LinkMan" class="com.struts2.web.action3.LinkManAction"/>

  3.页面代码

    <h3>动态方法的访问方式</h3>
<a href="${pageContext.request.contextPath }/LinkMan!add.action">添加LinkMan</a>
<a href="${pageContext.request.contextPath }/LinkMan!delete.action">删除LinkMan</a>

4.Struts2中Action的三种访问方式的更多相关文章

  1. Struts2之命名空间与Action的三种创建方式

    看到上面的标题,相信大家已经知道我们接下来要探讨的知识了,一共两点:1.package命名空间设置:2.三种Action的创建方式.下面我们开始本篇的内容: 首先我们聊一聊命名空间的知识,namesp ...

  2. struts2开发action 的三种方法以及通配符、路径匹配原则、常量

    struts2开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport { // Action中业务 ...

  3. Action的三种实现方式,struts.xml配置的详细解释及其简单执行过程(二)

    勿以恶小而为之,勿以善小而不为--------------------------刘备 劝诸君,多行善事积福报,莫作恶 上一章简单介绍了Struts2的'两个蝴蝶飞,你好' (一),如果没有看过,请观 ...

  4. Action的三种编写方式

    -------------------siwuxie095 Action 的三种编写方式 在 Struts2 的应用开发中,Action 作为框架的核心类,实现 对用户请求的处理,Action 类被称 ...

  5. SpringMVC中HandlerMapping的三种配置方式

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-/ ...

  6. iOS中正则表达式的三种使用方式

    1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @“nijino_saki@163.com”: NSString *regex = @"[ ...

  7. java中线程的三种实现方式

    一下记录下线程的3中实现方式:Thread,Runnable,Callable 不需要返回值时,建议使用Runnable:有返回值时建议使用Callable 代码如下所示: package com.f ...

  8. Golang中map的三种声明方式和简单实现增删改查

    package main import ( "fmt" ) func main() { test3 := map[string]string{ "one": & ...

  9. struts2简单入门-Action的三种配置方式

    普通的配置方式 优点:可读性高 缺点:重复的配置太多. 使用情况 一个actian只有一个方法,只需要处理一种请求. 代码演示 <action name="voteResult&quo ...

随机推荐

  1. Groovy学习:第四章 Groovy特性深入

    作者:chszs 1. 断言 Java开发者常常使用JUnit或TestNG做单元测试,所以对断言是很清楚的.断言是用于验证假设的条件是否为真.在Groovy的断言中,如果假设的条件不为真,那么就会抛 ...

  2. Puppeteer自动化测试cnode.js中文社区

    如果完全不了解puppeteer的朋友可以去看看我的这篇随笔:https://www.cnblogs.com/zlforever-young/p/11569890.html 开始之前需要了解的知识:E ...

  3. LinkButton(按钮)组件

    一.//class加载方式 <div id="pos" class="easyui-linkbutton">按钮</div> 二.js加 ...

  4. 使用sass

    sass安装 compass安装 1.sass 需要安装ruby,然后通过gem安装sass. 2. less有想=两种安装方: 客户端安装: 引入less.js,然后就可以直接用.less文件 &l ...

  5. KiCAD的一些快捷操作(类比于AD)

    一.原理图快捷操作 二.PCB快捷操作 Q: 在布线过程中,用来编辑线宽,和AD中布线时“Tab”的作用相似 W: 选择设定好的线宽,线宽减小 Shift+W: 选择设定好的线宽,线宽变大 /: 改变 ...

  6. Oracle 环境部署 以及数据库创建 ,用户新建和权限分配

    1.右键我的电脑--->属性--->高级系统设置 2.环境变量---->新建 总共配置三个变量 (1)变量名 ORACLE_HOME 变量值 G:\app\TH\product\11 ...

  7. CSV模块的使用

    1.csv简介 CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本 格式,用以存储表格数据,包括数字或者字符.很多程序在 ...

  8. ZedGraph怎样在生成曲线时随机生成不一样的颜色

    场景 在使用ZedGraph生成多条曲线时为了能区分曲线颜色,要求随机设置曲线颜色. 首先从System.Drawing.Color中获取所有颜色的对象的数组,然后将其顺序打乱随机排序,然后在生成曲线 ...

  9. 一键对centos7.6安装python3环境已经pip3

    1 yum -y install "Development tools" 2 yum -y install zlib-devel bzip2-devel openssl-devel ...

  10. vue组件实例的生命周期

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...