精华内容
下载资源
问答
  • 最近在做struts2的时候,老是碰见这样一个令人吐血的bug。...No result defined for action org.action.StrutsAction and result success at com.opensymphony.xwork2.DefaultActionInvocation...

      最近在做struts2的时候,老是碰见这样一个令人吐血的bug。 

     

    警告: Could not find action or result
    No result defined for action org.action.StrutsAction and result success
    	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
    	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
    	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
    	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	at java.lang.Thread.run(Thread.java:619)
    

     

    在网上寻了很久,查了很多资料,终于找到了自己错误的原因。实际上都是一个边边角角的错误,或是系统不兼容的错误。

    我的struts.xml的配置文件

     

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    
    	<package name="default" extends="struts-default">
    		<action name="struts" class="org.action.StrutsAction">
    			<result name="success">/welcome.jsp</result>
    			<result name="error">/hello.jsp</result>
    			
    		</action>
    	</package>
    </struts>   


    还有hello.jsp和welcome.jsp文件

     

     

    <%@ page language="java" pageEncoding="utf-8"%>
    <!-- 导入标签开发能力 -->
    <%@ taglib uri="/struts-tags" prefix="s"%>
    <html>
    <head>
    <title>struts 2应用</title>
    </head>
    <body>
    	<s:form action="struts.action" method="post">
    		<s:textfield name="name" label="请输入姓名"></s:textfield>
    		<s:submit value="提交"></s:submit>
    	</s:form>
    </body>
    </html>
    

     

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="/struts-tags" prefix="s" %>
    <html>
    <head>
        <title>struts 2应用</title>
    </head>
    <body>
       	hello <s:property value="#request.name"/>!
    </body>
    </html>
    


    最后就是StrutsAction文件

     

     

    package org.action;
    
    import java.util.Map;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    
    public class StrutsAction extends ActionSupport{
    	private String name;
    
    	public String getName() {
    		return name;
    	}
    	public String execute() throws Exception{
    		if(!name.equals("HelloWorld")){
    			Map request1=(Map)ActionContext.getContext().get("request");  
    			request1.put("name",getName());  
    			return SUCCESS;   
    		}else{
    			return ERROR;
    		}
    	}
    }
    
    
    


    出现错误后,笔者对其中的jar包以及配置文件进行了详细的检查

     

      问题就出现在了struts.xml这个文件上,网上说当在struts.xml文件中的action的 name属性要选择其他的字符串定义,不要占用了struts2的关键字-------“struts”。当然为什么会这样,笔者也不大了解,可能是规定吧。

      可改了之后,问题依然存在,后来在网上发现了原因,就是jsp中的form表单中的代码,确认form表单的action和struts.xml中的action相对应。就是form中的action=“abc”,则struts.xml中<action name="abc">,这两者要相同。

           改正之后,程序终于可能正确的运行了。 

     

    --------------------------------------------------------------------------------------------------------------------------------------------------------------

     

    展开全文
  • 你可以直接在那个action里面 如 &lt;result name="success"&gt;/index.jsp&lt;/action&gt; 可以那他改成 &lt;result name="success" type="redirect"&...

    你可以直接在那个action里面

    <result name="success">/index.jsp</action>

    可以那他改成

    <result name="success" type="redirect">*****.action</action>

    我的例子:

     <action name="index" class="struts2.action.GainInformation" >  
                <result name="gain1_success" >/index.jsp</result>
                <result name="gain1_fail">/index.jsp</result>
     </action>  
          <action name="login" class="struts2.action.LoginAction">
                <result name="success" type="redirect">index.action</result>
                <!-- <result name="login_success">/index.jsp</result> -->
                <result name="login_fail">/login.jsp</result>
            </action>
    展开全文
  • form action=''" method=post>action是什么意思? <url-pattern>/LoginServlet</url-pattern>和<url-pattern>/*</url-pattern>有什么区别? 假如我有个请求被拦截了是不是就不会去执行...
  • Android Action

    千次阅读 2016-05-05 11:49:22
    BroadcastReceiver_ACTIONACTION_AIRPLANE_MODE_CHANGED "android.intent.action.AIRPLANE_MODE" --用户切换飞行模式 ACTION_BATTERY_CHANGED "android.intent.action.BATTERY_CHANGED" --这是一个粘性广播包含...

    BroadcastReceiver_ACTION:

    ACTION_AIRPLANE_MODE_CHANGED "android.intent.action.AIRPLANE_MODE"  --用户切换飞行模式

    ACTION_BATTERY_CHANGED "android.intent.action.BATTERY_CHANGED"  --这是一个粘性广播包含充电状态,水平,电池和其他信息
    ACTION_BATTERY_LOW "android.intent.action.BATTERY_LOW"  --电池电量过低
    ACTION_BOOT_COMPLETED "android.intent.action.BOOT_COMPLETED" --系统启动完成执行一次
    ACTION_CAMERA_BUTTON "android.intent.action.CAMERA_BUTTON"  --按下相机按钮
    ACTION_BATTERY_OKAY   --电池电量由低变高
    ACTION_CLOSE_SYSTEM_DIALOGS "android.intent.action.CLOSE_SYSTEM_DIALOGS"  --This is broadcast when a user action should request a temporary system dialog to dismiss (关闭系统窗口?)
    ACTION_CONFIGURATION_CHANGED "android.intent.action.CONFIGURATION_CHANGED"  --当前设备配置(定位、区域等)已经改变了
    ACTION_DATE_CHANGED "android.intent.action.DATE_CHANGED"  --日期改变了
    ACTION_DEVICE_STORAGE_LOW "android.intent.action.DEVICE_STORAGE_LOW"  --内存低(受保护,只能由系统发送)
    ACTION_DEVICE_STORAGE_OK "android.intent.action.DEVICE_STORAGE_OK" --内存由低变高(受保护,只能由系统发送)
    ACTION_GTALK_SERVICE_CONNECTED "android.intent.action.GTALK_CONNECTED"  --GTalk连接已经建立
    ACTION_GTALK_SERVICE_DISCONNECTED "android.intent.action.GTALK_DISCONNECTED" --GTalk连接已经断开连接
    ACTION_HEADSET_PLUG "android.intent.action.HEADSET_PLUG" --有线耳机插入或拔出
    ACTION_INPUT_METHOD_CHANGED "android.intent.action.INPUT_METHOD_CHANGED" --切换输入方法
    ACTION_MANAGE_PACKAGE_STORAGE "android.intent.action.MANAGE_PACKAGE_STORAGE" -- Indicates low memory condition notification acknowledged by user and package management should be started
    ACTION_MEDIA_BAD_REMOVAL "android.intent.action.MEDIA_BAD_REMOVAL"  --外部媒体从插巢移除
    ACTION_MEDIA_BUTTON "android.intent.action.MEDIA_BUTTON"  --媒体”按钮被按下
    ACTION_MEDIA_CHECKING "android.intent.action.MEDIA_CHECKING"  --存在外部媒体,磁盘检查挂载点的路径中包含的检查媒体意图。mData字段
    ACTION_MEDIA_EJECT "android.intent.action.MEDIA_EJECT"  --用户移除外部存储媒体。
    ACTION_MEDIA_MOUNTED "android.intent.action.MEDIA_MOUNTED"  --外部媒体存在和安装在挂载点
    ACTION_MEDIA_NOFS "android.intent.action.MEDIA_NOFS"  --外部媒体存在,而是使用一个不兼容的fs(或者是空白)挂载点的路径中包含的检查媒体意图。mData字段。
    ACTION_MEDIA_REMOVED "android.intent.action.MEDIA_REMOVED"  --外部媒体已被删除
    ACTION_MEDIA_SCANNER_FINISHED "android.intent.action.MEDIA_SCANNER_FINISHED"  --媒体扫描仪完成扫描一个目录
    ACTION_MEDIA_SCANNER_SCAN_FILE "android.intent.action.MEDIA_SCANNER_SCAN_FILE" --请求媒体扫描仪扫描一个文件,并将它添加到媒体数据库
    ACTION_MEDIA_SCANNER_STARTED "android.intent.action.MEDIA_SCANNER_STARTED" --媒体扫描仪已经开始扫描一个目录
    ACTION_MEDIA_SHARED "android.intent.action.MEDIA_SHARED"  --外部媒体是卸载的,因为它是通过USB大容量存储共享。
    ACTION_MEDIA_UNMOUNTABLE "android.intent.action.MEDIA_UNMOUNTABLE"  --外部媒体存在但不能安装
    ACTION_MEDIA_UNMOUNTED "android.intent.action.MEDIA_UNMOUNTED" --外部媒体存在,但不是安装在挂载点
    ACTION_NEW_OUTGOING_CALL "android.intent.action.NEW_OUTGOING_CALL"  --一个外向呼叫将被放置
    ACTION_PACKAGE_ADDED "android.intent.action.PACKAGE_ADDED"  --一个新的应用程序包已经安装在设备上
    ACTION_PACKAGE_CHANGED "android.intent.action.PACKAGE_CHANGED"  --现有的应用程序包改变了
    ACTION_PACKAGE_REMOVED "android.intent.action.PACKAGE_REMOVED"  --现有的应用程序包已从设备中删除
    ACTION_PACKAGE_RESTARTED "android.intent.action.PACKAGE_RESTARTED"  --用户启动一个包,所有被杀害的过程。
    ACTION_POWER_CONNECTED "android.intent.action.POWER_CONNECTED" --外电源已连接到设备
    ACTION_POWER_DISCONNECTED "android.intent.action.POWER_DISCONNECTED" --外部电源已经从设备中删除
    ACTION_PROVIDER_CHANGED "android.intent.action.PROVIDER_CHANGED"  -- Some content providers have parts of their namespace where they publish new events or items that the user may be especially interested in.
    ACTION_REBOOT "android.intent.action.REBOOT" --设备重新启动
    ACTION_SCREEN_OFF "android.intent.action.SCREEN_OFF"  --关闭屏幕
    ACTION_SCREEN_ON "android.intent.action.SCREEN_ON"  --打开屏幕
    ACTION_TIMEZONE_CHANGED "android.intent.action.TIMEZONE_CHANGED" --时区改变了
    ACTION_TIME_CHANGED "android.intent.action.TIME_SET"  --The time was set (设置时间?)
    ACTION_TIME_TICK "android.intent.action.TIME_TICK" --当前时间改变了
    ACTION_UID_REMOVED "android.intent.action.UID_REMOVED"  --一个用户ID已经从系统中删除
    ACTION_SHUTDOWN "android.intent.action.ACTION_SHUTDOWN"--设备关闭


    ACTION_DOCK_EVENT "android.intent.extra.DOCK_STATE" --物理对接状态的变化


    ACTION_DREAMING_STARTED "android.intent.action.DREAMING_STARTED"--当设备闲置(无操作)进入白日梦模式
    ACTION_DREAMING_STOPPED "android.intent.action.DREAMING_STOPPED"--退出白日梦模式
    ACTION_EXTERNAL_APPLICATIONS_AVAILABLE "android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE"--Resources for a set of packages (which were previously unavailable) are currently available since the media on which they exist is available.
    ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE  "android.intent.extra.changed_package_list"--Resources for a set of packages are currently unavailable since the media on which they exist is unavailable
    ACTION_GET_RESTRICTION_ENTRIES "android.intent.extra.restrictions_bundle"--Broadcast to a specific application to query any supported restrictions to impose on restricted users.
    ACTION_LOCALE_CHANGED "android.intent.action.LOCALE_CHANGED"--当前设备的语言环境已经改变了
    ACTION_MY_PACKAGE_REPLACED  "android.intent.action.MY_PACKAGE_REPLACED"--您的应用程序的新版本已经存在
    ACTION_PACKAGE_DATA_CLEARED "android.intent.action.PACKAGE_DATA_CLEARED"--用户清除了一个包的数据
    ACTION_PACKAGE_FIRST_LAUNCH  "android.intent.action.PACKAGE_FIRST_LAUNCH"--发送到应用程序的安装程序包时,首次启动应用程序(即第一次搬出去的停止状态)
    ACTION_PACKAGE_FULLY_REMOVED "android.intent.action.PACKAGE_FULLY_REMOVED"--现有的应用程序包已经完全从设备中删除。
    ACTION_PACKAGE_NEEDS_VERIFICATION "android.intent.action.PACKAGE_NEEDS_VERIFICATION"--发送到系统包验证人当一个包需要验证。
    ACTION_PACKAGE_REPLACED "android.intent.action.PACKAGE_REPLACED"--新版本的应用程序包安装,替换现有的版本之前安装的
    ACTION_PACKAGE_VERIFIED "android.intent.action.PACKAGE_VERIFIED"--Sent to the system package verifier when a package is verified.
    ACTION_USER_PRESENT "android.intent.action.USER_PRESENT"--当设备被唤醒,用户存在
    ---------------------------------------------------------ACTIVITY_ACTION----------------------------------------------------------------------------------------------------
    ACTION_ALL_APPS "android.intent.action.ALL_APPS"  -- List all available applications Input: Nothing.
    ACTION_ANSWER "android.intent.action.ANSWER"  --处理传入的电话
    ACTION_BUG_REPORT "android.intent.action.BUG_REPORT"  --Show activity for reporting a bug
    ACTION_CALL "android.intent.action.CALL"  --执行调用一个指定的数据
    ACTION_CALL_BUTTON "android.intent.action.CALL_BUTTON"  --按下拨号键
    ACTION_CHOOSER "android.intent.action.CHOOSER"  --显示一个activity选择界面,允许用户选择他们想要的东西之后再继续
    ACTION_DIAL "android.intent.action.DIAL"  -- 拨一个号码作为指定的数据
    ACTION_EDIT "android.intent.action.EDIT"  -- 提供明确的可编辑访问给定的数据
    ACTION_FACTORY_TEST "android.intent.action.FACTORY_TEST"  --工厂测试的主要入口点
    ACTION_GET_CONTENT "android.intent.action.GET_CONTENT" --允许用户选择特定类型的数据并返回它
    ACTION_INSERT "android.intent.action.INSERT"  --容器中插入一个空item
    ACTION_INSERT_OR_EDIT "android.intent.action.INSERT_OR_EDIT"  --选择一个现有的项目,或插入一个新项,然后编辑它
    ACTION_MAIN "android.intent.action.MAIN" --开始作为一个主要入口点,不希望接收数据


    ACTION_INSTALL_PACKAGE --启动应用程序安装程序
    ACTION_MANAGE_NETWORK_USAGE --显示设置管理网络数据使用一个特定的应用程序
    ACTION_OPEN_DOCUMENT --允许用户选择并返回一个或多个现有文档



    展开全文
  • PS:最近看到有很多地方用到UnityAction和UnityEvent的地方,自己也刚刚学习,总结一下 Action 与event Action也是基于委托,并且无返回值。可带参数Action&lt;T1,T2,T3,T4&gt;。通常大家可以用在订阅...

    PS:最近看到有很多地方用到UnityAction和UnityEvent的地方,自己也刚刚学习,总结一下

     

    Action 与event 

       Action也是基于委托,并且无返回值。可带参数Action<T1,T2,T3,T4>。通常大家可以用在订阅事件和发出消息结合。这点和delegate配合event很相似。

     

     

    UnityAction与UnityEvent

       既然event可以方便的传递消息,那Unity开发者自然也有自己的UnityEvent。比如简单Button使用的时候,我们把对象拖入Runtime中,然后选择我们所需要的调用函数。其实使用的就是Runtime里的UnityEvent,这里的拖入完成的就是注册

      在我们的类中声明如下,并作序列化

    可以在Inspector面板看到

    是不是和Button等可交互对象上似曾相识呢?

     

    说到这里那UnityAction呢?其实它和Action一样,都需要绑定对应的函数。UnityEvent里也需要注册UnityAcrtion.这样当我们调用UnityEvent的Invoke方法后,它会对所有注册过的UnityAction发出回调。例如

    using UnityEngine;
    using System.Collections;
    using UnityEngine.Events;
    public class UnityActionAndEvent : MonoBehaviour {
    
        public UnityAction action;
        public UnityEvent myEvent = new UnityEvent();
    
        void Start()
        {       
            action = new UnityAction(MyFunction);
            action+=MyFunction2;
            myEvent.AddListener(action);
    
            //AddListener的时候也可采用匿名委托,省去UnityAction
            myEvent.AddListener(()=>
            {
             //此处等于一个函数体,要处理的逻辑 
            }  
        );
             
        }
        void Update()
        {
            if(Input.GetKeyDown(KeyCode.Space))
            {
                myEvent.Invoke();
            }
        }
        public void MyFunction()
        {
            print ("MyFunction");
        }
        public void MyFunction2()
        {
            print ("MyFunction2");
        }
    }

     

    到这里基本使用应该没问题了,那么带参的有必要提一下。

    UnityEvent<T0> 是抽象类,需要继承。

    public class MyEvent:UnityEvent<int>{}
    
    public class UnityActionWithParameter : MonoBehaviour {
    
        public MyEvent myEvent = new MyEvent();
        public UnityAction<int> action;
    
        void Start () {
            action= new UnityAction<int>(MyFunction);
            action += MyFunction2;
            myEvent.AddListener(action);
        }   
        void Update () {
            if(Input.GetKeyDown(KeyCode.A))
            {
                myEvent.Invoke(10);
            }
        }
        public void MyFunction(int i)
        {
            print (i);
        }
        public void MyFunction2(int i)
        {
            print(i*2);
        }
    }

     

    Action可以理解为对函数的存储,类似存储变量。实现回调的同时也就是往回再次调用存储起来的函数而已。

    我们可以使用Action可以完成简单回调一对一,也可以配合Event利用字典发出Invoke通知指令一对多

    UnityEvent也可以完成对所有注册过的UnityAction实现一对多通知,Public也好,AddListener也罢

     

     

    PS:欢迎一起交流学习,指正

     

    展开全文
  • J2EE进阶(三)struts2 标签的用法前言 使用action标签,可以允许在jsp页面中直接调用Action,(类似AJAX页面调用)在调用Action时候,可以指定需要被调用的Action的name和namespace.如果指定了executeResult参数的属性值为...
  • SOAP Action介绍

    千次阅读 2019-11-26 16:02:00
    SOAP Action  据说SOAP Action header在SOAP 1.1规范中着实让不少开发者喝了一壶。真的有那么难理解么?我想这应该是因为SOAP有两种非常不同的使用方式,而SOAP Action主要是被用来支持其中应用较少的一种方式的...
  • 获取From的action:$("#FormID)").attr("action");设置Form的action:$("#FormID)").attr("action",“you url”);
  • Html.Action与Url.Action的区别

    千次阅读 2018-03-21 10:20:27
    Url.Action返回的是指定控制器指定action的完整URL地址,不含&lt;a&gt;标签,例如:&lt;%:Url.Action("SelectDetail","OutBox",new{letterid=m.LetterID}) ...
  • UnityAction和System.Action引发的思考

    千次阅读 2018-04-05 01:07:59
    今天突然发现UnityAction,这是什么,怎么和Action有着类似的功能?可是如果功能如果真的一致,那unity官方提供这个不是多此一举吗。 在google的帮助下我得到了答案。(百度真是垃圾) UnityAction和System.Action...
  • Mobx-action

    千次阅读 2018-09-11 11:45:07
    action 用法: action(fn) action(name, fn) @action classMethod @action(name) classMethod @action boundClassMethod = (args) =&gt; { body } @action(name) boundClassMethod = (args) =&gt; { ...
  • 对于事件的传递大概的流程,都比较清楚。这里主要探讨下事件流ACTION_DOWN、ACTION_UP、ACTION_MOVE不同部分的拦截会有什么样的影响。
  • IntelliJ Save Action

    万次阅读 2018-09-23 20:42:51
    在Team开发项目中,都是多人维护一个项目。因此,保持良好的代码规范与风格很重要。 IntelliJ 默认是自动保存的,...Save Action就是一个。 安装简单: File -> Settings -> Plugins,搜索“Save actions...
  • 1,在 Action中我们经常会从这个Action跳转到另一个Action中,这时我们就要用到redirect、redirect-action、chain,  其中redirect和redirect-action是重定向,相当于浏览器二次请求,之前的数据都会丢失,所有的...
  • action函数详解(自定义action

    千次阅读 2016-04-14 16:56:16
    controller中自定义action: 1.添加路由 delete '/dsdfas/:id/fdas/:home_id' => “controller#action” 2.controller中定义该action的函数 3.方法一:查其路由路径 类似edit_manage_path的,然后, 则匹配上路由...
  • Action 和Func

    千次阅读 2018-10-25 17:40:42
    Action Func Action Acition 属于无参无返回值的函数类型 Action&lt; T&gt;通过设置泛型,我们可以定义有多个参数, 无返回值的函数 当函数有多个重载的时候,系统会自动匹配 Action是没有返回值的 参数...
  • action标签

    千次阅读 2012-10-03 23:42:22
    action标签,使用action标签可以允许在jsp页面中直接调用Action,因为需要调用Action,所以指定需要被调用Action的那么及namespace。如果指定的executeResult参数属性是true,该标签还会把Action的处理接个包涵到本...
  • Struts2_Action访问与Action方法调用

    千次阅读 2016-05-16 09:36:27
    一、Action访问路径 Action的访问路径是由struts.xml文件中配置的Action所在包的命名空间,Action的名字和常struts.action.extension共同决定的 例如: /1.jsp /2.jsp
  • ROS学习笔记六:action-server/action-client 以下是最后一种通信机制action-server/action-client,尽管与service/client通信机制很像,它与service/client通信机制还是有很关键的不同点的: 那就是多对多的...
  • 在另外一个 action 中也可以: actions: { // ... actionB ({ dispatch, commit }) { return dispatch('actionA').then(() =&gt; { commit('someOtherMutation') }) } }
  • getAction,getActionMasked,getActionIndex区别
  • 在使用Struts框架时,为了使用验证码功能,加入了servlet,而Struts会截获所有请求,把servlet当成action,不能正常响应servlet的请求。 解决办法:在struts.xml文件加入 constant name="struts.action.extension" ...
  • asp.net mvc之Url.Action()用法详解

    万次阅读 2016-12-29 16:37:38
    Url.Action()方法在asp.net mvc中也是比较常用的方法,其有8种重载方法,每一种重载方法的用法见下表。 Url.Action重载列表 名称 说明 示例 Action(String) 使用指定的操作名称生成操作方法的完全限定 URL @...
  • 当一个Action处理了多个控制逻辑的时候,可能需要使用这个Action中的不同方法来进行不同的处理,此时有两种方法可以选择。 1.动态方法调用Action。 这种方法,需要在struts.xml中对其进行支持: 当struts.xml中...
  • GitHub Action开启自动化

    千次阅读 2019-11-16 14:23:18
    这周突然发现公司项目的GitHub代码库多了一个Tab页,叫做GitHub Action。于是了解了一下,发现这就是大家期待已久的自动化功能。自动化不只是我们常说的CICD(持续集成和持续部署),通过定义一个yml文件我们可以...
  • 系统拨打电话可以调用action如下: ACTION_CALL(普通), ACTION_CALL_EMERGENCY (紧急电话), ACTION_CALL_PRIVILEGED(系统专属), 而普通应用要拨打电话只能调用ACTION_CALL。 ACTION_CALL 根据指定的数据...
  • Ultimate Action

    千次阅读 2013-07-19 17:34:51
    Ultimate Action 重拾ACM。 :) 可能的话,大家区域赛见 :) 届时本人将代表国科大参加比赛 :) 哇咔咔~
  • 方法名,即可以实现动态调用,而不需要为Action中的每个方法都在struts.xml进行action的配置。 注意:要把struts.enable.DynamicMethodInvocation的值为true,如 ,否则无法动态访问 Action.java import ...
  • Action标签的用法

    千次阅读 2018-07-27 23:31:34
    Action标签,顾名思义,是用来调用Action的标签,在JSP中页面中,可以具体指定某一命名空间中的某一Action。而标签的主体用于显示及渲染Actionr的处理结果。 action标签有如下几个属性: 1、id: 可选,作为该...
  • Android Intent Action 大全

    万次阅读 多人点赞 2012-12-01 00:36:09
    1.Intent的用法:(1)Action跳转1、 使用Action跳转,当程序AndroidManifest.xml中某一个 Activity的IntentFilter定义了包含Action,如果恰好与目标Action匹配,且其IntentFilter中没有定义其它的Type或Category...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 386,307
精华内容 154,522
关键字:

action