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

标签 java jquery ajax validation struts2

在我的项目中,我正在更新细节,所以我创建了操作,但它给了我异常响应作为

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>

Ajax 调用

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 interceptor 返回,它位于 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 拦截器来过滤您的操作方法。仅当您有足够的理由这样做时才应使用最后一个选项,因为它克服了拦截器本身的目的。

关于java - 如何在同一页面上获得结果为什么需要输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26238149/

相关文章:

java - 如何一一运行两个java文件-Eclipse?

jquery - 使用窗口调整大小函数附加回调的最佳方法

php - PHP 是否有像 zk 或 vaadin for java 这样的 ajax

javascript - 成功访问ajax中的javascript变量

java - 我应该在这个系统上为 Eclipse 使用什么内存设置?

java - 使用特殊字符从ajax post中解码Java中的参数

java - java中的科学记数法抽象

javascript - Ajax 加载后附加事件与委托(delegate)事件 : what factors to consider?

jquery - 使用 JQuery 控制 HTML 元素

javascript - 使用 jquery ajax 访问 php 脚本返回的 JSON