zoukankan      html  css  js  c++  java
  • 10、一个action中处理多个方法的调用第一种方法动态调用

    我们新建一个用户的action

    package com.weiyuan.test;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    /**
     * 
     * 这里不用implements Action
     * 而用继承ActionSupport有几个好处,主要用于实现国际化功能
     * */
    
    public class UserAction  extends ActionSupport{
    
        private String message;
        
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    
        @Override
        public String execute() throws Exception {
            // TODO Auto-generated method stub
            return super.execute();
        }
        
        /**
         * 自己实现一个增加删除方法,定义必须和    public String execute() throws Exception 一样
         * */
        public String add() throws Exception {
            // TODO Auto-generated method stub
            message="添加用户成功";
            return SUCCESS;
        }
        
        public String del() throws Exception {
            // TODO Auto-generated method stub
            message="删除用户成功";
            return SUCCESS;
        }
        
        
    }

    在struct.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>
    <!-- 当struts.xml配置文件发生修改,会立刻加载,在生产环境下最好不要配置 -->
        <constant name="struts.configuration.xml.reload" value="true"/>
        <!-- 会提供更加友好的提示信息 -->
        <constant name="struts.devMode" value="true"/>
        
    <!-- 需要继承extends="struts-default",否则struct2的拦截器就无法使用 -->
    <package name="struct2"  extends="struts-default">
       <action name="user" class="com.weiyuan.test.UserAction">
          <result name="success">/login_sucess.jsp</result>
       </action>
    </package>
    
    </struts>

    我们

    login_sucess.jsp
    内容如下:
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    ${message }
    </body>
    </html>

    首页

    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>Insert title here</title>
    </head>
    <body>
        <a href="user!add.action">添加用户</a><br>
        <a href="user!del.action">删除用户</a><br>
        
    </body>
    </html>

    总结:

    Struts2的Action中包含多个方法如何调用(方法的动态调用)

    具体的调用方式:
    * 方法的动态调
    * 在<action>中配置method属性
    * 使用通配符

    方法的动态调用方式:
    action名称+!+方法名称+后缀

    <a href="user!add.action">添加用户</a><br>
    <a href="user!del.action">删除用户</a><br>
    <a href="user!update.action">修改用户</a><br>
    <a href="user!list.action">查询用户</a><br>

    !!动态调用参数配置,默认为true,可以调用,否则不能调用
    <constant name="struts.enable.DynamicMethodInvocation" value="false"/>

    <?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>
    <!-- 当struts.xml配置文件发生修改,会立刻加载,在生产环境下最好不要配置 -->
        <constant name="struts.configuration.xml.reload" value="true"/>
        <!-- 会提供更加友好的提示信息 -->
        <constant name="struts.devMode" value="true"/>
        <constant name="struts.enable.DynamicMethodInvocation" value="false"/>    
    <!-- 需要继承extends="struts-default",否则struct2的拦截器就无法使用 -->
    <package name="struct2"  extends="struts-default">
       <action name="user" class="com.weiyuan.test.UserAction">
          <result name="success">/login_sucess.jsp</result>
       </action>
    </package>
    
    </struts>


    !!Action中的所有方法必须和execute方法一致(参数,返回值,异常最好也一样)

  • 相关阅读:
    剑指Offer
    剑指Offer
    ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误)
    less文件的样式无法生效的一个原因,通过WEB浏览器访问服务器less文件地址返回404错误
    Sqlserver Sql Agent Job 只能同时有一个实例运行
    SSAS 聚合设计提升CUBE的查询性能(转载)
    SQL SERVER: 合并相关操作(Union,Except,Intersect)
    SQL Server安装完成后3个需要立即修改的配置选项(转载)
    收缩TempDB的办法(转载)
    SSIS 关于并发的两个设置
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/8075065.html
Copyright © 2011-2022 走看看