struts2-通配符和动态方法调用

通配符举例--BookAction

 1 public class BookAction extends ActionSupport {
 2 
 3     public String execute() throws Exception {
 4         System.out.println("BookAction ********** execute()");
 5         return null;
 6     }
 7     /*
 8      * 显示图书添加页面
 9      */
10     public String add(){
11         System.out.println("显示图书添加页面");
12         return "add";
13     }
14 }

通配符举例--struts-pattern.xml

 1 <struts>
 2    <package name="pattern" namespace="/pattern" extends="struts-default">
 3 
 4    <!-- method:指定执行调用action中的方法,如果不加该属性,默认调用action中的execute()方法 -->
 5       
 6       <action name="BookAction" class="cn.itcast.pattern.BookAction" method="add">
 7          <result name="add">/pattern/BookAction.jsp</result>
 8       </action>
 9    </package>
10 </struts>

 

通配符举例—BookAction如何自定义方法

在action中增加新的方法的要求:

• 方法最好要用public修饰
• 方法的名称自定义
• 方法没有参数
• 方法的返回值为String

要定义的方法就是与execute方法的方法名称不同,其他的都一样,只有这样的定义方法struts2才识别

 

 

 

 

 

 

通配符映射

  

动态方法调用-这种方式不常用

•动态方法调用: 通过 url 动态调用 Action 中的方法

  如果Action中存在多个方法时,我们可以使用!+方法名调用指定方法

默认情况下, Struts 的动态方法调用处于激活状态, 若想禁用该功能, 则可以在 struts.xml 文件中添加如下 constant 元素:

  <constant name="struts.enable.DynamicMethodInvocation" value="false"/>

  Jsp页面的代码:

1      动态方法调用!形式:<br>
2     <a href="${pageContext.request.contextPath}/pattern/BookAction!add.action">图书添加</a><br>
3     <a href="${pageContext.request.contextPath}/pattern/BookAction!delete.action">图书删除</a><br>

 

 

Action代码:

 1 import com.opensymphony.xwork2.ActionSupport;
 2 
 3 @SuppressWarnings("serial")
 4 public class BookAction extends ActionSupport {
 5         public String add(){
 6         System.out.println("BookAction...add()");
 7         return "add";
 8     }    
 9     public String delete(){
10         System.out.println("BookAction...delete()");
11         return "success";
12     }
13 }

  Action配置:

1 <action name="BookAction" class="cn.zengfansheng.struts.pattern.BookAction">
2          <result name="add">/pattern/BookAction.jsp</result>
3          <result name="success">/pattern/success.jsp</result>
4 </action>

 

使用通配符定义action-相对于动态方法调用,开发中比较常用这种方式调用action中的方法

  jsp页面代码:

1     动态方法调用!形式:<br>
2     <a href="${pageContext.request.contextPath}/pattern/BookAction!add.action">图书添加</a><br>
3     <a href="${pageContext.request.contextPath}/pattern/BookAction!delete.action">图书删除</a><br>

  Action配置:

1 <action name="*_*" class="cn.zengfansheng.struts.pattern.{1}" method="{2}">
2              <result name="add">/pattern/{1}.jsp</result>
3              <result name="success">
4                  <param name="location">/pattern/success.jsp</param>
5              </result>
6 </action>

全局结果

  当多个action中都使用到了相同result,这时我们应该把result定义为全局结果

1 <package ....>
2     <global-results>
3         <result name="message">/message.jsp</result>
4     </global-results>
5 </package>

  注:局部的会覆盖全局-但全局和局部同时存在时,局部的会覆盖全局的。

全局结果和局部结果的区别:
  * 全局结果:对该包下所有的action配置起作用
  * 局部结果:只对当前的action起作用

   Struts2中 应用范围内action的实例,每个请求都会创建一个action实例-也就是对于每一个请求都会new一个Action对象。刷新或者回车

 

转载于:https://www.cnblogs.com/hacket/archive/2013/05/15/3079050.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaFX技巧18:路径剪切

我最近注意到&#xff0c;我致力于ControlsFX项目的PopOver控件无法正确剪切其内容。 当我为FlexCalendarFX框架开发手风琴弹出窗口时&#xff0c;这一点变得显而易见。 每当最后一个标题窗格扩展时&#xff0c;其底角不再是圆角而是正方形。 在将红色矩形作为内容放置到标题窗…

关于erlang的套接字编程

套接字编程即熟悉的Socket编程&#xff0c;根据传输层协议&#xff0c;可分为&#xff1a;UDP协议和TCP协议.下面写一个简单的例子&#xff0c;再重新认识下它&#xff1a; 1.在同一主机节点下启动两个Erlang节点. a).在第一个Erlang节点下&#xff0c;打开端口为1234的UDP套接…

kotlin 添加第一个 集合_Flutter开发必学Dart语法篇之集合操作符函数与源码分析...

简述:在上一篇文章中&#xff0c;我们全面地分析了常用集合的使用以及集合部分源码的分析。那么这一节讲点更实用的内容&#xff0c;绝对可以提高你的Flutter开发效率的函数&#xff0c;那就是集合中常用的操作符函数。这次说的内容的比较简单就是怎么用&#xff0c;以及源码内…

在Java中确定文件类型

以编程方式确定文件的类型可能非常棘手&#xff0c;并且已经提出并实现了许多基于内容的文件标识方法。 Java中有几种可用于检测文件类型的实现&#xff0c;其中大多数很大程度上或完全基于文件的扩展名。 这篇文章介绍了Java中最常见的文件类型检测实现。 本文介绍了几种在Ja…

程序员编程艺术第十一章:最长公共子序列(LCS)问题

程序员编程艺术第十一章&#xff1a;最长公共子序列(LCS)问题 0、前言 程序员编程艺术系列重新开始创作了&#xff08;前十章&#xff0c;请参考程序员编程艺术第一~十章集锦与总结&#xff09;。回顾之前的前十章&#xff0c;有些代码是值得商榷的&#xff0c;因当时的代码只顾…

gateway 过滤器执行顺序_Gateway网关源码解析—路由(1.1)之RouteDefinitionLocator一览...

一、概述本文主要对 路由定义定位器 RouteDefinitionLocator 做整体的认识。在 《Spring-Cloud-Gateway 源码解析 —— 网关初始化》 中&#xff0c;我们看到路由相关的组件 RouteDefinitionLocator / RouteLocator 的初始化。涉及到的类比较多&#xff0c;我们用下图重新梳理下…

ERP开发中应用字符串解析实现界面翻译智能化

ERP中要实现界面多语言的功能&#xff0c;则要对各种情况的字符串进行处理并作出翻译。有些字符串的翻译是有规律可行的&#xff0c;遵循相应的模板模式&#xff0c;解析字符串&#xff0c;可以实现机器翻译的效果。 请看帐套数据库表的设计ADCOMP CREATE TABLE dbo.ADCOMP(REC…

参数详解 复制进程_如何优化PostgreSQL逻辑复制

How to Optimize PostgreSQL Logical Replication逻辑复制( Logical Replication )或 Pglogical 是表级别的复制。两者都是基于 WAL 的复制机制&#xff0c;允许在两个实例之间复制指定表的WAL 。这两个看起来让人迷惑&#xff0c;到底有什么区别呢&#xff1f; Logical Replic…

Android Studio使用说明

声明: 本博客文章原创类别的均为个人原创&#xff0c;版权所有。转载请注明出处: http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com。 凌晨的Google I/O大会上&#xff0c;宣布了Android Studio&#xff0c;引起了现场开发者的一片欢呼。那么&#x…

有些窗口底部被任务栏挡住了_开始使用 Tint2 吧,一款 Linux 中的开源任务栏

Tint2 是我们在开源工具系列中的第 14 个工具&#xff0c;它将在 2019 年提高你的工作效率&#xff0c;能在任何窗口管理器中提供一致的用户体验。-- Kevin Sonney每年年初似乎都有疯狂的冲动想提高工作效率。新年的决心&#xff0c;渴望开启新的一年&#xff0c;当然&#xff…

从jHiccup开始

写完“如何在生产中检测和诊断慢速代码”一文后&#xff0c;我受到读者的鼓励&#xff0c;尝试从Azul系统尝试jHiccup 。 去年&#xff0c;我参加了jHiccup的创建者Gil Tene的演讲&#xff0c;探讨了测量延迟的正确方法&#xff0c;其中&#xff0c;他向我们介绍了jHiccup。 它…

华为内部面试题库---(6)

1.在SMP体系结构中&#xff0c;中断亲和性是指将一个或者多个中断绑定到特定CPU core上运行&#xff0c;下列说法错误的是&#xff1a;A.每个硬件设备都会在/proc/irq下有个中断号命令的目录来标志中断亲和性B.IRQ#目录下smp_affinity文件&#xff0c;通过设置CPU位掩码&#x…

基元需要走吗?

我目前正在使用JSF作为视图技术&#xff0c;使用JPA作为持久层的企业应用程序。 它可能是支持bean或服务方法中的某种东西&#xff0c;但令我震惊&#xff1a;是否有充分的理由在企业应用程序中使用原语&#xff1f; 当我开始围绕J2SE 1.2使用Java进行编程&#xff08;或者是J…

输入参数_太实用!输入参数1秒算出功率,这款计算工具又快又准

随着互联网红利的不断加深&#xff0c;到了后期&#xff0c;不断地各种工具开始涌现&#xff0c;方便了很多用户&#xff0c;填补了市场上的很多空白&#xff0c;有生活娱乐类、提高效率类、垂直专业类、系统工具类等等。工业行业作为各行各业的大头&#xff0c;机械化、智能化…

如何编写NetBeans插件

是否想在NetBeans IDE中添加功能或自动执行某些操作&#xff1f; 跟随我们编写您的第一个NetBeans插件。 让我们超越简单的工具栏示例 &#xff0c;创建一个可以自动更新的插件。 该代码基于NetBeans的WakaTime插件 。 我们的示例插件将仅打印Hello World语句&#xff0c;并在…

Spring Batch教程–最终指南

这是Spring批处理教程&#xff0c;它是Spring框架的一部分。 Spring Batch提供了可重用的功能&#xff0c;这些功能对于处理大量记录至关重要&#xff0c;包括日志记录/跟踪&#xff0c;事务管理&#xff0c;作业处理统计信息&#xff0c;作业重新启动&#xff0c;跳过和资源管…

箱式图 添加异常值平均值_什么是脏数据?怎样用箱形图分析异常值?终于有人讲明白了...

导读&#xff1a;数据质量分析是数据挖掘中数据准备过程的重要一环&#xff0c;是数据预处理的前提&#xff0c;也是数据挖掘分析结论有效性和准确性的基础。没有可信的数据&#xff0c;数据挖掘构建的模型将是空中楼阁。数据质量分析的主要任务是检查原始数据中是否存在脏数据…

窗口程序ImageView(仿QQ图片查看器)

近期一直在学习窗口程序之类的问题,下午正好有机会和大家讨论一下. 程序运行截图&#xff1a; 应用方法&#xff1a; 1、直接把图像文件拖到图标上表现 2、通过命令行方式&#xff0c;示例&#xff1a;ImageView.exe "带全路径的图像文件名称" 3、打开ImageView.exe&…

USACO3.15stamps(dp)

对dp很无奈。。枚举所有可能达到的值 dp[i]表示到达i值所用最少的邮票 1 /*2 ID: shangca23 LANG: C4 TASK: stamps5 */6 #include <iostream>7 #include<cstdio>8 #include<cstring>9 #include<stdlib.h> 10 #include<algorithm> …

基于价值的类

在Java 8中&#xff0c;某些类在Javadoc中有一个小注释&#xff0c;说明它们是基于值的类 。 其中包括简短说明的链接&#xff0c;以及有关不使用它们的限制。 这很容易被忽略&#xff0c;如果这样做&#xff0c;则可能会在将来的Java版本中以微妙的方式破坏代码。 为了避免这种…