zoukankan      html  css  js  c++  java
  • java strtus2 DynamicMethodInvocation配置(二)

    前面一章讲了下动态配置的方法。那样,能够直接动态的调用action里面的方法,

    这里展示一种配置更少,更简洁的一种方法。

    在前一章其他不变的情况下,改变配置文件

        <package name="Menu" namespace="/Menu" extends="struts-default">
           <action name="*" class="com.almostman.action.{1}Action" >
             <result name="success">/success.jsp</result>
             <result name="input">/input.jsp</result>
           </action>
        </package>

    这里的 “*” 表示你输入的内容,{1}表示第一个*的内容,这里具体调用的method不用去指定,因为用了动态调用,方法可以直接通过 “!”去调用。

    MainPageAction.java
    package com.almostman.action;
    
    import org.apache.struts2.convention.annotation.Action;
    import org.apache.struts2.convention.annotation.Namespace;
    import org.apache.struts2.convention.annotation.ParentPackage;
    import org.apache.struts2.convention.annotation.Result;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class MainPageAction extends ActionSupport{
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
    
        @Override
        public String execute() throws Exception {
            
            if("admin".equals(username) && "admin".equals(password)){
                return SUCCESS;
            }
            
            return INPUT;
        }
        
        public String init() throws Exception {
            
            if("admin".equals(username) && "admin".equals(password)){
                return SUCCESS;
            }
            
            return INPUT;
        }
        public String add() throws Exception {
            
            if("admin".equals(username) && "admin".equals(password)){
                return SUCCESS;
            }
            
            return INPUT;
        }
        
        private String username;
        private String password;
        
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }

    这里的调用URl是

    http://localhost:8081/struts013/Menu/MainPage!init.action?username=admin&password=admin

    通过Action名和方法直接进行了访问,甚至返回都可以用通配符固定返回的页面也和调用的一样,这样名字都不用去想不同的。

    源码:http://pan.baidu.com/s/1kULwCIj

  • 相关阅读:
    Restful、SOAP、RPC、SOA、微服务之间的区别
    SOA(面向服务的架构.)、RPC(远程过程调用)思想
    facade层,service 层,domain层,dao 层设计
    Mac下配置alias,zsh终端命令别名
    .bash_profile 和.zshrc
    什么是零担物流?零担物流的五大特点
    零担是什么意思,零担物流和快递有什么区别
    idea vm options
    idea中 VM options配置
    ES配置生命周期策略
  • 原文地址:https://www.cnblogs.com/sunxun/p/5388169.html
Copyright © 2011-2022 走看看