zoukankan      html  css  js  c++  java
  • Action的方法访问

    -------------------siwuxie095

       

       

       

       

       

       

       

       

    Action 的方法访问

       

       

    Action 的方法访问方式共有三种,如下:

       

       

    1、通过 method 属性的配置实现

       

    action 标签的 method 属性中配置执行 Action 中的某个方法

       

       

    1)编写 Action

       

    BookAction.java:

       

    package com.siwuxie095.action;

       

    import com.opensymphony.xwork2.ActionSupport;

       

    public class BookAction extends ActionSupport {

    //添加

    public String add() {

    System.out.println("--- add ---");

    return NONE;

    }

    //修改

    public String update() {

    System.out.println("--- update ---");

    return NONE;

    }

    }

       

       

       

    2)配置 Action

       

    struts.xml:

       

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

       

    <struts>

       

    <!-- 配置 Action 的方法访问 -->

    <package name="methoddemo" extends="struts-default" namespace="/">

    <!-- method 属性:Action 中要执行的方法的名称 -->

    <!-- 执行 add() 方法 -->

    <action name="addAction" class="com.siwuxie095.action.BookAction" method="add"></action>

    <!-- 执行 update() 方法 -->

    <action name="updateAction" class="com.siwuxie095.action.BookAction" method="update"></action>

    </package>

       

    </struts>

       

       

       

    3)访问路径

       

    1)http://localhost:8080/工程名/addAction

       

    2)http://localhost:8080/工程名/updateAction

       

    「最好加上 .action 后缀,以防某些浏览器无法访问」

       

       

       

    缺陷:

       

    Action 中的每个方法都需要进行配置,如果 Action 中

    有很多方法,就要配置很多 Action

       

       

       

       

       

    2、通过通配符的配置实现

       

    action 标签的 name 属性中使用通配符 * 代表任意字符

       

       

    1)编写 Action(同上 BookAction.java)

       

       

       

    2)配置 Action

       

    struts.xml:

       

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

       

    <struts>

       

    <!-- 配置 Action 的方法访问 -->

    <package name="methoddemo" extends="struts-default" namespace="/">

    <!--

    name 属性:在其中配置通配符 *

    method 属性:{1} 代表 name 属性中出现的第一个 * 所代替的字符

    执行 Action add() 方法,访问 book_add

    执行 Action update() 方法,访问 book_update

    -->

    <action name="book_*" class="com.siwuxie095.action.BookAction" method="{1}"></action>

    </package>

       

    </struts>

       

       

       

    3)访问路径

       

    1)http://localhost:8080/工程名/book_add

       

    2)http://localhost:8080/工程名/book_update

       

    「最好加上 .action 后缀,以防某些浏览器无法访问」

       

       

       

       

       

    3、通过动态方法访问的配置实现(不建议)

       

    动态方法访问在 Struts2 中默认是不开启的,如果需要使用需要先开启一个常量

       

    <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

       

       

    1)编写 Action(同上 BookAction.java)

       

       

       

    2)配置 Action

       

    struts.xml:

       

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

       

    <struts>

       

    <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

       

    <!-- 配置 Action 的方法访问 -->

    <package name="methoddemo" extends="struts-default" namespace="/">

    <!--

    name 属性:在其中配置通配符 *

    method 属性:{1} 代表 name 属性中出现的第一个 * 所代替的字符

    执行 Action add() 方法,访问 book_add

    执行 Action update() 方法,访问 book_update

    -->

    <action name="bookAction" class="com.siwuxie095.action.BookAction"></action>

    </package>

       

    </struts>

       

       

       

    3)访问路径

       

    1)http://localhost:8080/工程名/bookAction!add

       

    2)http://localhost:8080/工程名/bookAction!update

       

    「最好加上 .action 后缀,以防某些浏览器无法访问」

       

       

       

       

       

    补:

       

    1、如果 Action 方法有返回值,在配置文件中没有配置 或 配置不一致,会报错

       

       

    2、Action 方法可以有返回值,但返回值类型必须是 String

       

       

    3、Action 方法可以没有返回值,此时,不需要配置 result 标签

       

    1)法一:返回值类型为 void

       

    2)法二:返回值类型为 String,返回 NONE 或 "none"

       

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    泛型中的类型擦除
    chatty: uid=10549(u0_a549) com.exampleidentical 40 lines
    Android 属性动画ObjectAnimator和ValueAnimator讲解
    解决Error:Unable to find method 'org.gradle.api.internal.project.ProjectInternal.
    Android Studio 模拟器无法打开 emulator: ERROR: x86 emulation currently requires hardware
    有关 java 不定参数
    数据处理
    有关SharedPreference的使用
    关于Fragment的onActivityResult 不执行
    Java GC回收机制
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/7326112.html
Copyright © 2011-2022 走看看