struts2 - 从jquery ajax调用 Action 时如何在struts2中进行验证?

标签 struts2 struts-validation

我从 jquery ajax 调用 struts2 操作,成功时返回字符串,出错时应分派(dispatch)到同一页面并显示错误。我用下面的代码检查它..

$(document).ready(function(){
            $('#getActionRs').click(function(){
                alert("call action");
                $.ajax({
                    type:"POST",
                    url: "returnToAjax",
                    data: "firstinput=" +$('#firstinput').val()+"&secondinput=" +$('#secondinput').val(),
                    success: function(msg){
                        alert("success:"+msg);
                    }
                    });
            });
        });

我已经使用上面的代码来调用我的 struts Action 。 onclick 按钮这个东西被调用

我在配置文件中指定了我的操作元素,如下所示
<action name="returnToAjax" class="example.returnToAjax">
      <result name="success" type="stream">
         <param name="contentType">text/html</param>
         <param name="inputName">inputStream</param>
      </result>
      <result name="input" type="dispatcher">/Login.jsp</result> 
    </action>

当它返回成功时,它正确地返回字符串,我已经通过验证 xml 对此操作进行了一些验证,但是当它返回错误时,它只是向我显示 Login.jsp 文件代码,它不会将它分派(dispatch)到 Login.jsp

最佳答案

你做的事情根本上是错误的。Ajax 意味着在不刷新页面并让用户停留在同一页面上的情况下执行支持的进程。

您的方法不在 Ajax 主体的正确范围内。因此,即使您在操作类控制中出现验证失败,也会返回到 Jquery 代码中的相同处理程序,并且由于您指定了 Login.jsp作为 View 模板, Steam 结果是挑选整个 jsp 并返回其内容。

如果您想采用相同的方法,只需在验证失败时从 Action 中返回操作名称,然后使用 JavaScript 表单提交功能将用户重定向到输入页面。

关于struts2 - 从jquery ajax调用 Action 时如何在struts2中进行验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8817747/

相关文章:

java - session 持久性与值(value)栈维护之间的区别

java - 如何仅通过更改 Struts2 中的配置来更改当前使用的数据库

validation - 为什么 struts 验证对我不起作用?

jquery - 在 Struts2 中使用 JSON-RPC

spring - 自定义错误页面 + spring security 3 + hasPermission

java - FreeMarker 模板错误!在 struts2 中

jsp - Struts 无法为禁用字段提供 "refresh"值

struts2 - 避免在 Struts 中自动返回 "input"

java - struts2中不允许显示字段错误的拦截器

java - 为什么 struts2 FilterDispatcher 被弃用?