zoukankan      html  css  js  c++  java
  • Struts2 Action

      具体实体的返回可以有用户自己定义的Action来决定

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

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

    或者实现Action接口

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

     ----------------------------------------------Hongten-------------------------------------------

    新建web project:struts2_0300_Action

    Build Path

     ----------------------------------------------Hongten-------------------------------------------

    struts.xml

    代码:

    <?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>
        <constant name="struts.devMode" value="true" />
        <package name="front" extends="struts-default" namespace="/">
            <action name="index" class="com.bjsxt.struts2.front.action.IndexAction1">
                <result name="success">/ActionIntroduction.jsp</result>
            </action>
        </package>

    </struts>

     ----------------------------------------------Hongten-------------------------------------------

    当我们访问这个action的时候,他会去找对应的class:com.bjsxt.struts2.front.action.IndexAction1

    在IndexAction1这个类中找到execute()方法,返回一个字符串。如:success,input,login,none

    如果我们这里没有class,则他默认的会去调用:com.opensymphony.xwork2.Action这个接口中的execute()方法

    还有如果我们在struts.xml中的result中没有写name="success",他 的默认也是<result name="success">

     ----------------------------------------------Hongten-------------------------------------------

    在做测试的时候,分别修改:class="com.bjsxt.struts2.front.action.IndexAction2"

                和class="com.bjsxt.struts2.front.action.IndexAction3"

     在上面的三个测试当中,得到的是同样的结果;

     ----------------------------------------------Hongten-------------------------------------------

    那么三种方法有什么区别呢?我们应该使用那一种方法呢?

    我们在真正开发过程中就用:class="com.bjsxt.struts2.front.action.IndexAction3"这种方法;

                  其他的都不用;就是从ActionSupport继承,

                  原因是:

                  ActionSupport已经

                  帮我们封装了一系列可以直接调用的特别方便的方法;有很多方法封装在其中,

                  我们在子类中可以直接拿来就用了

     ----------------------------------------------Hongten-------------------------------------------

    IndexAction.java

    代码:

    package com.bjsxt.struts2.front.action;

    public class IndexAction1 {
     public String execute() {
      return "success";
     }
    }

     ----------------------------------------------Hongten-------------------------------------------

    IndexAction.java

    代码:

    package com.bjsxt.struts2.front.action;

    import com.opensymphony.xwork2.Action;

    public class IndexAction2 implements Action {
     @Override
     public String execute() {
      return "success";
     }
    }

     ----------------------------------------------Hongten-------------------------------------------

    IndexAction.java

    代码:

    package com.bjsxt.struts2.front.action;

    import com.opensymphony.xwork2.ActionSupport;

    public class IndexAction3 extends ActionSupport {
     
     @Override
     public String execute() {
      return "success";
     }
    }

     ----------------------------------------------Hongten-------------------------------------------

    ActionIntroduction.jsp

    代码:

    <?xml version="1.0" encoding="GB18030" ?>
    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
        <%@taglib uri="/struts-tags" prefix="s" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
    <title>Insert title here</title>
    </head>
    <body>
    具体视图的返回可以由用户自己定义的Action来决定<br />
    具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容<br />
    具体Action的实现可以是一个普通的java类,里面有public String execute方法即可<br />
    或者实现Action接口<br />
    不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法<br />
    </body>
    </html>



     

  • 相关阅读:
    一个 redis 异常访问引发 oom 的案例分析
    从粗放式到精益化编程
    又是一年校招
    xUtils框架的介绍(四)
    xUtils框架的介绍(三)
    hdu 4283 区间dp
    hdu 4632区间dp 回文字串计数问题
    poj 1651 区间dp
    NYOJ 石子合并(一) 区间dp入门级别
    区间dp 整数划分问题
  • 原文地址:https://www.cnblogs.com/hongten/p/2122028.html
Copyright © 2011-2022 走看看