写Action的三种方法
Action类似于servlet,在用户对浏览器输入url访问的时候充当控制器的角色。它在访问时产生,执行execute()之后就销毁了。
写Action是代理事务,它实现的三种方式是: (1)POJO类
(2)继承ActionSupport类
(3)实现Action接口
POJO类
public class ActionPrint {
public String execute(){
System.out.println("ActionPrint execute!");
return "success";
}
}
继承ActionSupport类
import com.opensymphony.xwork2.ActionSupport;
public class ActionInputCheck extends ActionSupport{
private int a;
private double b;
private char c;
private String d;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public char getC() {
return c;
}
public void setC(char c) {
this.c = c;
}
public String getD() {
return d;
}
public void setD(String d) {
this.d = d;
}
public String execute(){
return SUCCESS;
}
public void validate(){
if(a<0)
this.addActionError("d不能小于0");
}
}
实现Action接口
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ModelDriven; import Beans.User; public class MDriven implements Action,ModelDriven<User>{ private User user=new User();
public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} @Override
public User getModel() {
// TODO Auto-generated method stub return user;
} @Override
public String execute() throws Exception {
ActionContext context=ActionContext.getContext();
context.getSession().put("username", user.getUsername());
return SUCCESS;
} }
ModelDriven接口是让javabean的实现和Action分离,Action只用扮演好控制器的角色就好,javabean是在Model层的东东,这样比较符合MVC的设计模式。
写了Action之后相应加上struts.xml的配置
</action>
<action name="InputCheck" class="StrutsFund.ActionInputCheck">
<result name="success">/output.jsp</result>
</action>
<action name="MDriven" class="StrutsFund.MDriven">
<result name="success">/login_success.jsp</result>
</action>
<action name="print" class="StrutsFund.ActionPrint">
<result name="success">/index.jsp</result>
</action>
访问的时候就在网址栏中输入:http://localhost:8080/项目名/ActionName
struts.properties配置文件
该文件定义了struts2框架的大量属性。只要将该文件放在web应用的classes下,struts2框架就会自动加载。
写Action的三种方法的更多相关文章
- JAVA写JSON的三种方法,java对象转json数据
JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...
- struts2开发action 的三种方法以及通配符、路径匹配原则、常量
struts2开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport { // Action中业务 ...
- python面对对象编程------3:写集合类的三种方法
写一个集合类的三种方法:wrap,extend,invent 一:包装一个集合类 class Deck: def __init__( self ): self._cards = [card6(r+1, ...
- Node.js写文件的三种方法
Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...
- 为IE单独写CSS的三种方法
本文由 Kayo Lee 发表,本文链接:http://kayosite.com/the-methods-make-css-only-for-ie.html 因为万恶的 IE 存在各种的不标准,因此, ...
- struts 中的创建Action的三种方法
1.对于直接创建类,不实现接口和继承任何的类 例如创建一个helloAction package cn.lonecloud.control; import com.opensymphony.xwork ...
- 实现action的三种方法
1.一个普通的类 public class testAction1 { public String execute(){ return "success"; } } 2.实现Act ...
- struts2 Action 接收参数的三种方法
刚学Struts2 时 大家可能遇到过很多问题,这里我讲一下Action 接收参数的三种方法,我曾经在这上面摔过一回.所以要警醒一下自己..... 第一种:Action里声明属性,样例:account ...
- Action访问Servlet API的三种方法
一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...
随机推荐
- win7 IIS 部署-vs2012开发网站-全是问题啊。。。
1.文件夹权限everyone2.aspnet_regiis.exe -i 表现为:
- Beta项目冲刺 --第二天
在几kb的上传速度中苦苦挣扎的程序员... 队伍:F4 成员:031302301 毕容甲 031302302 蔡逸轩 031302430 肖阳 031302418 黄彦宁 会议内容: 1.站立式会议照 ...
- Ueditor 上传图片 如何设置只显示 本地上传
我这个是自问自答,其实很简单.只要按照以下方式修改就可以了. 找到image.html 将以下代码 <div id="tabHeads" class="tabhea ...
- mysql中insert into select from的使用
如何在mysql从多个表中组合字段然后插入到一个新表中,通过一条sql语句实现.具体情形是:有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,我们可以使 ...
- Asp.Net Form验证不通过,重复登录
问题产生根源: 当然,其实应该需要保持线上所有机器环境一致!可是,写了一个小程序.使用的是4.5,aysnc/await实在太好用了,真心不想把代码修改回去. so,动了念头,在这台服务器上装个4.5 ...
- you-get中文说明
来源于:https://github.com/soimort/you-get/wiki/%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E You-Get 乃一小小哒命令行程序, ...
- Android 判断当前屏幕是横屏还是竖屏
记录学习 /** * 返回当前屏幕是否为竖屏. * @param context * @return 当且仅当当前屏幕为竖屏时返回true,否则返回false. */ public s ...
- 总结Controller向View传值的方式(转)
总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Model对象 向强类型页面传传 ...
- 如何在iOS9的plist文件中配置不使用https
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Te ...
- python 内置函数 lamda表达式。 open 文件方法
lamda 表达式 lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 普通的条件语句 if 1 == 1: name = 'kaixin' else: ...