当前位置: 首页 > 面试题库 >

如何在同一页面上获得结果,为什么需要输入?

易弘阔
2023-03-14
问题内容

在我的项目中,我正在更新详细信息,所以我创建了动作,但是它给了我例外

No result defined for action org.employee.actions.EmployeeMyProfileAction and result input

struts.xml(之前)

<action name="savePersonalDetails"  class="org.employee.actions.EmployeeMyProfileAction" method="updateEmployeeDetails">
        <result name="success">empMyProfile.jsp</result>
</action>

(后)

<action name="savePersonalDetails" class="org.employee.actions.EmployeeMyProfileAction" method="updateEmployeeDetails">
    <result name="success">empMyProfile.jsp</result>
    <result name="input">emp-personal-form.jsp</result>
</action>

阿贾克斯电话

function checkPersonal(id) {

    if (checkEverythingP()) {
        $.ajax({
            type : 'POST',
            url : 'savePersonalDetails',
            data : $('#personalform').serialize(),
            success : function(data) {
                alert('success');
            },
            error : function() {
                alert('error');
            }
        });
    }
}

它在JQuery中给我成功消息,但不会传递到声明的操作类。一切正确之后,我不明白为什么会发生这种情况。我为此提到了许多站点,但没有解决。请建议我出了什么问题。


问题答案:

并非所有的事情都是您想的那样正确,因为在success回调函数中您已经收到INPUT结果。该结果由workflow拦截器返回,该拦截器位于defaultStack-如果您的操作未覆盖拦截器配置,则默认使用的拦截器堆栈中。它检查动作调用是否具有验证错误(例如动作错误或字段错误(转换错误)),然后返回参数指定的结果inputResultName。默认情况下,此参数设置为“输入”。如果拦截器返回结果,则会中断一系列拦截器并调用动作方法。您注意到它说
这不是要声明的动作类

解决方案是重写操作的拦截器配置以使用基本堆栈,即不使用validation和/或使用workflow拦截器。

<action name="savePersonalDetails"  class="org.employee.actions.EmployeeMyProfileAction" method="updateEmployeeDetails">
  <interceptor-ref name="basicStack"/>
  <result name="success">empMyProfile.jsp</result>
</action>

如果您仍然需要执行验证,则可以通过 编程
或配置workflow拦截器来过滤您的操作方法。仅当您有足够的理由时才应使用最后一个选项,因为它克服了拦截器本身的目的。



 类似资料:
  • 当我跑的时候。使用CPLEX的NET 4应用程序,我在不同的机器上得到不同的输出。在我的开发机器上,CPLEX输出一个结果(异常并卡在某个大值上),在所有其他机器上,结果都可以。 首先,我认为它与操作系统有关,因为我的开发机器上同时有视窗7 x64和视窗8 x64,所以我尝试在两个系统上运行应用程序。结果是一样的——有缺陷。 然后我试着在两台不同的台式机上运行,效果很好。我甚至在虚拟机内部进行了尝

  • 问题内容: 您好,我正在构建Spring-Hibernate应用程序。我真的需要从下面进行配置吗? 我已经在我的root-context.xml中设置了注释驱动 现在是否不应该使用注释@Entity自动hibernate此包中的所有内容并将其转换为table?就目前而言,没有annotatedClasses的他不会从实体创建表 问题答案: 使用 文档,卢克! […] AnnotationSessi

  • 我已经为我的城市选项卡创建了ajax代码,以显示来自ajax的相应城市数据。 我使用了以下代码: 下面是我要在ajax内容上加载的div 现在我已经使用以下jquery插件对我的项目进行分页http://cssglobe.com/post/9801/easy-paginate-jQuery-plugin-for-pagination 但是当我在ajax响应中使用它时,分页不起作用。 你能帮我一下我

  • 我想在单页中获得所有的结果,我已经尝试过了 上面不起作用,有什么方法可以做到这一点吗?似乎不能像这里要求的那样从自定义查询中实现。

  • 问题内容: 如果我们使用ExecutorCompletionService,则可以将一系列任务作为s 提交,并将结果作为进行交互。 但也有在的,它接受一个任务,我们得到的名单,以检索结果。 据我所知,使用一个或多个都不会有任何好处(除了我们避免使用循环,否则我们将不得不对任务进行操作),并且基本上它们是相同的想法,只是稍有不同。 那么,为什么有两种不同的方式提交一系列任务呢?我在性能上正确吗?有没

  • 问题内容: 我读了一些有关闭包的文章,到处都看到了,但是没有明确的解释-每次我被告知要使用它时……: 好的,我看到我们将创建一个新的匿名函数,然后执行它。因此,在此之后,此简单的代码应该可以工作了(并且可以): 我的问题是这里发生了什么魔术?我以为在写的时候: 然后将创建一个新的未命名函数,如函数“”(msg)… 为什么它需要在同一行? 您能给我一些帖子或给我一个解释吗? 问题答案: 将分号放在函