有三种方法可以使一个Action处理多个请求

  1. 动态方法调用DMI
  2. 定义逻辑Acton
  3. 在配置文件中使用通配符

这里就说一下在配置文件中使用通配符,这里的关键就是struts.xml配置文件,在最简单的配置当中,我们只需要写一个Action,但是一个Action只能对应一种处理方式,我们只需在Action的类中实现execute的方法即可,如下面的代码

package struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class Sample extends ActionSupport {

    /**
*
*/
private static final long serialVersionUID = 1L; @Override
public String execute() throws Exception {
//
return SUCCESS;
} }

如果需要一个Action类处理多个业务,那就需要用到以上三种方法,第一种方法只需要关注请求语句就行,第二种方法需要关注struts.xml配置文件,而这篇文章关注的也是配置文件

只需要把通配符写上就能实现多任务处理,如下面的配置,在这段配置可以看到一个test_*,{1}和result_{1}.jsp,例如:请求是test_page1,那么它对应的方法就是page1,对应返回的页面是result_page1.jsp,就这么简单(注意!!!,这里是区分大小写的,意思就是,例如:在页面当中aciton="Hello",那么在action类当中的方法名也要大写,public void Hello(),返回页面也要对应大写,Hello.jsp,如果这里使用hello.jsp,会报404找不到页面)

<action name="test_*" class="struts2.action.TestAction" method="{1}">
<result name="success">result_{1}.jsp</result>
</action>

接下来我们来看看完整的例子:

1.请求页面,这里有两个按钮,一个是执行test_page1的action,另一个是执行test_page2的action

//ResultTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>測試頁面</h1>
<s:form action="test_page1">
<s:submit value="测试页面1"/>
</s:form>
<s:form action="test_page2">
<s:submit value="测试页面2"/>
</s:form>
</body>
</html>

2.action类

这个类很简单,就实现了两个方法,page1和page2的方法,返回值都是success

package struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class TestAction extends ActionSupport{

    /**
*
*/
private static final long serialVersionUID = 1L; public String page1() {
return SUCCESS;
} public String page2() {
return SUCCESS;
} }

3.struts.xml配置

当请求test_page1的时候,就会调用page1的方法,如果是success就返回,result_page1的方法

当请求test_page2的时候,就会调用page2的方法,如果是success就返回,result_page2的方法

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<package name="default" extends="struts-default">
<action name="test_*" class="struts2.action.TestAction" method="{1}">
<result name="success">result_{1}.jsp</result>
</action>
</package>
</struts>

4.返回页面

这里有两个返回页,一个是result_page1.jsp,另一个是result_page2.jsp,两个页面的内容一样,只是文字上有所不同,所以这里就不把两个页的代码贴出来,自己改改就行了

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>测试成功页1</h1>
</body>
</html>

Struts2学习笔记 - Action篇<配置文件中使用通配符>的更多相关文章

  1. Struts2学习笔记 - Action篇<定义逻辑Action>

    有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这文章就谈论一下定义逻辑Action 这里主要关注的是struts.xml配置文件,一般情 ...

  2. Struts2学习笔记 - Action篇<动态方法调用>

    有三种方法可以使一个Action处理多个请求 动态方法调用DMI 定义逻辑Acton 在配置文件中使用通配符 这里就说一下Dynamic Method nvocation ,动态方法调用,什么是动态方 ...

  3. struts2学习笔记之四:多配置文件支持和常用配置参数

    struts2支持可以按照不同模块分类的方式拆分配置文件,支持多人分工合作,各自维护自己的配置文件,但是所有配置文件中包名和action的名称不能重复   struts2的配置文件方式有两种,stru ...

  4. Struts2 学习笔记--Action Method--接收参数

    struts2中的路径问题 注意:在jsp中”/”表示tomcat服务器的根目录,在struts.xml配置文件中”/”表示webapp的根路径,即MyEclipse web项目中的WebRoot路径 ...

  5. struts2学习笔记--struts.xml配置文件详解

    这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...

  6. Android学习笔记(第二篇)View中的五大布局

    PS:人不要低估自己的实力,但是也不能高估自己的能力.凡事谦为本... 学习内容: 1.用户界面View中的五大布局... i.首先介绍一下view的概念   view是什么呢?我们已经知道一个Act ...

  7. nginx 学习笔记(6) nginx配置文件中的度量单位

    容量大小可以用比特(byte),千比特(kilobyte,后缀k或者K)或者兆(megabytes,后缀m或者M),例如:“1024”,“8k”,“1m”. 时间间隔可以用毫秒(millisecond ...

  8. Struts2学习笔记①

    Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ...

  9. Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)

    Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...

随机推荐

  1. jboss [how to access the admin console]

    However you have not yet added any users to be able to access the admin console. 进入%EAP_HOME%/bin 执行 ...

  2. unity3d多线程坑

    单独起了一个线程来处理网络相关操作,比较常规的做法.本身没啥特别的东西,碰到了一个不大不小的坑折腾了好久,记录下来吧. 简单的说就是子线程中抛出的异常,如果没有catch的话,会导致子线程悄无声息的退 ...

  3. 在JAVA中把JSON数据格式化输出到控制台

    public class ForMatJSONStr { public static void main(String[] args) { String jsonStr = "{\" ...

  4. Firebird数据库的Select语句

    select first 10 skip 8 * from t_data   //跳过前8行不要,取10行,即取第9行到18行共10行 select  first 10 * from t_data   ...

  5. erlang学习笔记(shell命令)

    erlang shell 命令: help(). 可以查看erlang shell内置命令. 比如:m(Mod),可以查看模块Mod. 待续..

  6. eclipse执行上一次结果

    eclipse执行上一次结果,解决方法:Project-clean

  7. 2.一起来学hibernate之配置文件1与持久化对象

    学框架,配置都是不可少的,有了配置,框架才知道我们想做什么,才知道如何去执行我们需要的操作! hibernate的配置文件,总体来说分为两个部分: 1.主配置文件hibernate.cfg.xml文件 ...

  8. maven安装nexus私服

    从nexus官网下载Nexus Repository Manager OSS 2.x的安装包:nexus-2.14.1-01-bundle.tar.gz,3.x版本需要jdk8及以上 解压 tar x ...

  9. DataPager 分页样式(css)

    <asp:DataPager ID="> <Fields> <asp:NextPreviousPagerField ShowFirstPageButton=&q ...

  10. Java构建工具Ant小记(一)

    Ant简介 Ant是基于java的构建工具.理论上来说它类似与make工具,但是却克服了make的一些固有的缺陷. 传统的Make是基于操作系统shell的构建工具,虽然也可以基于工作的os对make ...