01_3_创建一个Action

1. 定义一个action

具体视图的返回可以由用户自己定义的Action来决定

具体的手段是根据返回的字符串找到相应的配置项,来决定视图的内容

具体Action的实现可以是普通的java类,里面有public String execute() 方法即可

或者实现Action接口

不过最常用的是从ActionSupport继承,好处在于直接使用Struts2封装好的方法。

1.1下载xwork-2.1.2.jar.zip包

wget http://www.java2s.com/Code/JarDownload/xwork/xwork-2.1.2-sources.jar.zip

并配置源码查看链接

1.2第一种方式

1.2.1配置struts.xml文件

<action name="index" class="com.sumapay.action.IndexAction1">

<!-- 1.此处,浏览器在访问index的时候,容器会将用户请求交给class com.sumapay.action.IndexAction1

处理 默认会执行IndexAction1类中的execute()方法,返回sucess字符串。result 默认不配置返回类型,就是success,

就会返回配置的DefininAction.jsp页面。 2.此处的class类,可以不设置,不设置的话,会默认使用Struts中的ActionSupport类,此类实现Action接口,Action接口中

同样有个execute()方法 -->

<result>

/DefinitionAction.jsp

</result>

</action>

1.2.2手工定义一个类,定义一个类包含execute()方法

package com.sumapay.action;

public class IndexAction1 {

public String execute() {

return "success";

}

}

1.3第二种方式

1.3.1配置struts.xml文件

<action name="index2" class="com.sumapay.action.IndexAction2">

<result>

/DefinitionAction.jsp

</result>

</action>

1.3.2创建一个类实现Action接口

package com.sumapay.action;

import com.opensymphony.xwork2.Action;

public class IndexAction2 implements Action{

public String execute() throws Exception {

return "success";

}

}

1.4第三种方式

1.4.1配置struts.xml文件

<action name="index3" class="com.sumapay.action.IndexAction3">

<result>

/DefinitionAction.jsp

</result>

</action>

1.4.2定义一个类基础ActionSupport这个类

package com.sumapay.action;

import com.opensymphony.xwork2.ActionSupport;

public class IndexAction3 extends ActionSupport {

/**

*

*/

private static final long serialVersionUID = 1L;

@Override

public String execute() {

return "success";

}

}

01_3_创建一个Action的更多相关文章

  1. 01_3_创建一个Servlet

    01_3_创建一个Servlet 1.创建一个Servlet import java.io.IOException; import java.io.PrintWriter; import javax. ...

  2. 使用 React 和 Flux 创建一个记事本应用

    React,来自 Facebook,是一个用来创建用户界面的非常优秀的类库.唯一的问题是 React 不会关注于你的应用如何处理数据.大多数人把 React 当做 MV* 中的 V.所以,Facebo ...

  3. ROS2学习之旅(20)——创建一个动作消息

    本文用来自定义一个动作消息类型. 以下命令用来创建一个工作空间并建立一个功能包: mkdir -p action_ws/src cd action_ws/src ros2 pkg create act ...

  4. 创建一个动作-Action类:

    让我们创建一个Java文件HelloWorldAction.java的Java资源> SRC下一个的包名com.yiibai.struts2与下面的内容. package com.yiibai. ...

  5. 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...

  6. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  7. 利用django创建一个投票网站(四)

    创建你的第一个 Django 项目, 第四部分 这一篇从第三部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,专注于简单的表单处理并且精简我们的代码. 编写一个简单的表单 让我们更新一下在上一个 ...

  8. 创建一个新的Activity

    1.创建一个类继承Activity类,并创建对应的布局文件,在onCreate方法中加载该布局. 2.在AndroidManifest.xml声明该组件 注:如果想配置一个activity在桌面上有该 ...

  9. Orchard入门:如何创建一个完整Module

    这是一个Orchard-Modules的入门教程.在这个教程里,我们将开发两个功能页面分别用于数据录入与数据展示. 完成上述简单功能开发,我们一共需要6个步骤.分别为: 创建Module 创建Mode ...

随机推荐

  1. 洛谷P3608 [USACO17JAN]Balanced Photo平衡的照片

    P3608 [USACO17JAN]Balanced Photo平衡的照片 题目描述 Farmer John is arranging his NN cows in a line to take a ...

  2. 平衡的阵容 st表学习

    模板 预处理 void rmq_isit() { ;i<=n;i++) mx[i][]=mn[i][]=a[i]; ;(<<j)<=n;j++) ;i+(<<j)- ...

  3. 前端编码规范,个人感觉bootstrap总结的不错,拿出来给大家分享

    前端编码规范,个人感觉bootstrap总结的不错,拿出来给大家分享 http://codeguide.bootcss.com/#html-doctype HTML 语法 HTML5 doctype ...

  4. VUE中模块与组件

    组件:我们项目中,每一个资源(.js,.css,.vue,...)都是一个模块,这些模块是相互独立,但是我们可以通过类似于webpack构建工具把它们整合在一起,你可以理解为模块就是一个一个积木,通过 ...

  5. [Android]进程间通信的方法

    一.管道 管道是进程间通信中最古老的方式,它包括 无名管道 和 有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信. 无名管道由pipe()函数创建. #i ...

  6. Luogu P1155 双栈排序 图论?模拟吧。。

    今天想做做图论,于是点开了这道题....(是二分图染色然而我没看出来) 四种操作及条件: 1. s1.push() 需满足 待push的元素小于栈顶 && { 若在原序列中,待push ...

  7. STM32之ADC(内部基准电压,参考电压)

    转 STM32内部参照电压VREFIN的使用 https://blog.csdn.net/uncle_guo/article/details/50625660 每个STM32芯片都有一个内部的参照电压 ...

  8. ruby 数组 Hash相互转换

    由[索引, 值, ...] 型的数组变为哈希表 ary = [1,"a", 2,"b", 3,"c"] p Hash[*ary] # =&g ...

  9. ASPECTJ 注解。。。

    public interface ISomeService { public void doSome(); public String dade(); } public class SomeServi ...

  10. MySQL 如何在一个语句中更新一个数值后返回该值 -- 自增长种子竞态问题处理

    什么是竞态问题? 假设有一个计数器,首先当前值自增长,然后获取到自增长之后的当前值.自增长后的值有可能被有些操作用来当做唯一性标识,因此并发的操作不能允许取得相同的值. 为什么不能使用使用UPDATE ...