写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框架就会自动加载。

时间: 2024-12-30 10:28:25

写Action的三种方法的相关文章

2、struct2开发action 的三种方法以及通配符、路径匹配原则、常量

struct2 开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport { // Action中业务处理方法 public String login() { System.out.println("UserAction.login()"); // return "success"; return SUCCESS; } } 2.实现Action public clas

struts2开发action 的三种方法以及通配符、路径匹配原则、常量

struts2开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport { // Action中业务处理方法 public String login() { System.out.println("UserAction.login()"); // return "success"; return SUCCESS; } } 2.实现Action public class

day7_写excel的三种方法

方法一: import xlwt book = xlwt.Workbook() # 创建一个excel sheet = book.add_sheet('sheet1') # 添加一个sheet页,也可把sheet1改成别的名字 sheet.write(0,0,'姓名') # 0行,0列,写入内容 sheet.write(0,1,'年龄') # 0行,1列,写入内容 sheet.write(0,2,'身高') # 0行,2列,写入内容 sheet.write(1,0,'孙树江') # 1行,0列,

struts 中的创建Action的三种方法

1.对于直接创建类,不实现接口和继承任何的类 例如创建一个helloAction package cn.lonecloud.control; import com.opensymphony.xwork2.Action; /** * * @author lonecloud * @Date * @version * @Description */ public class HelloAction{ public String execute() throws Exception { System.o

C#向文件写、读三种方法

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace FileTest { class Program { static void Main(string[] args) { WriteFile(); ReadFile(); Console.ReadKey(); }

JAVA写JSON的三种方法,java对象转json数据

转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07aef 原文地址:https://www.cnblogs.com/jasonboren/p/10632997.html

Action访问Servlet API的三种方法

一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器而言,不访问action是不行的,Struts提供了一种比较简单的方式来访问Servlet API . 二.通常我们需要访问的Servlet API 是 HttpSession.HttpservletRequest.ServletContext,分别对应了JSP内置对象 session,reques

Struts2关于Action的系统训练6关于action接收参数的三种方法

我们知道,action在web开发中起到了控制器的作用,通过接收客户端传来的参数,执行不同的模块才实现操作,所以说接收参数是很重要的一环,只有接收前端的参数,才能执行数据库的操作等后台业务逻辑,那么就开始一一展示这三种方法吧(只用看action类的编写即可) 1第一种方式:UserAction.java package com.bjsxt.struts2.user.action; import com.opensymphony.xwork2.ActionSupport; public class

struts2中的jsp值传到后台action接收的三种方法

struts2中的Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" name="form1"> 用户名:<s:textfield name="username"/><br/> 密 码:<s:password name="password"/><br/&g