01_3_创建一个Action
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的更多相关文章
- 01_3_创建一个Servlet
01_3_创建一个Servlet 1.创建一个Servlet import java.io.IOException; import java.io.PrintWriter; import javax. ...
- 使用 React 和 Flux 创建一个记事本应用
React,来自 Facebook,是一个用来创建用户界面的非常优秀的类库.唯一的问题是 React 不会关注于你的应用如何处理数据.大多数人把 React 当做 MV* 中的 V.所以,Facebo ...
- ROS2学习之旅(20)——创建一个动作消息
本文用来自定义一个动作消息类型. 以下命令用来创建一个工作空间并建立一个功能包: mkdir -p action_ws/src cd action_ws/src ros2 pkg create act ...
- 创建一个动作-Action类:
让我们创建一个Java文件HelloWorldAction.java的Java资源> SRC下一个的包名com.yiibai.struts2与下面的内容. package com.yiibai. ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
- 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)
搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...
- 利用django创建一个投票网站(四)
创建你的第一个 Django 项目, 第四部分 这一篇从第三部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,专注于简单的表单处理并且精简我们的代码. 编写一个简单的表单 让我们更新一下在上一个 ...
- 创建一个新的Activity
1.创建一个类继承Activity类,并创建对应的布局文件,在onCreate方法中加载该布局. 2.在AndroidManifest.xml声明该组件 注:如果想配置一个activity在桌面上有该 ...
- Orchard入门:如何创建一个完整Module
这是一个Orchard-Modules的入门教程.在这个教程里,我们将开发两个功能页面分别用于数据录入与数据展示. 完成上述简单功能开发,我们一共需要6个步骤.分别为: 创建Module 创建Mode ...
随机推荐
- 洛谷P3608 [USACO17JAN]Balanced Photo平衡的照片
P3608 [USACO17JAN]Balanced Photo平衡的照片 题目描述 Farmer John is arranging his NN cows in a line to take a ...
- 平衡的阵容 st表学习
模板 预处理 void rmq_isit() { ;i<=n;i++) mx[i][]=mn[i][]=a[i]; ;(<<j)<=n;j++) ;i+(<<j)- ...
- 前端编码规范,个人感觉bootstrap总结的不错,拿出来给大家分享
前端编码规范,个人感觉bootstrap总结的不错,拿出来给大家分享 http://codeguide.bootcss.com/#html-doctype HTML 语法 HTML5 doctype ...
- VUE中模块与组件
组件:我们项目中,每一个资源(.js,.css,.vue,...)都是一个模块,这些模块是相互独立,但是我们可以通过类似于webpack构建工具把它们整合在一起,你可以理解为模块就是一个一个积木,通过 ...
- [Android]进程间通信的方法
一.管道 管道是进程间通信中最古老的方式,它包括 无名管道 和 有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信. 无名管道由pipe()函数创建. #i ...
- Luogu P1155 双栈排序 图论?模拟吧。。
今天想做做图论,于是点开了这道题....(是二分图染色然而我没看出来) 四种操作及条件: 1. s1.push() 需满足 待push的元素小于栈顶 && { 若在原序列中,待push ...
- STM32之ADC(内部基准电压,参考电压)
转 STM32内部参照电压VREFIN的使用 https://blog.csdn.net/uncle_guo/article/details/50625660 每个STM32芯片都有一个内部的参照电压 ...
- ruby 数组 Hash相互转换
由[索引, 值, ...] 型的数组变为哈希表 ary = [1,"a", 2,"b", 3,"c"] p Hash[*ary] # =&g ...
- ASPECTJ 注解。。。
public interface ISomeService { public void doSome(); public String dade(); } public class SomeServi ...
- MySQL 如何在一个语句中更新一个数值后返回该值 -- 自增长种子竞态问题处理
什么是竞态问题? 假设有一个计数器,首先当前值自增长,然后获取到自增长之后的当前值.自增长后的值有可能被有些操作用来当做唯一性标识,因此并发的操作不能允许取得相同的值. 为什么不能使用使用UPDATE ...