AJAX验证不能与struts2 Jquery插件一起使用

时间:2012-09-17 10:26:38

标签: jquery-plugins struts2

我正在使用struts2 + Jquery插件编写一个Web应用程序 我正在使用jjery插件的sj:submit标签提交AJAX表单。 我在sj:submit中使用“validate = true”标记验证表单(AJAX)时遇到了问题。 以下是sj:submit标签:

<sj:submit value="ADDUSERNOW" onBeforeTopics="before" onSuccessTopics="success" 
    onErrorTopics="errorState" onCompleteTopics="complete" targets="userMgmntDiv" validate="true"/>

我的html head部分还包含对验证所需的两个js文件的引用,如下所示。

<script language="JavaScript" src="${pageContext.request.contextPath}/struts/utils.js" type="text/javascript"></script>
        <script language="JavaScript" src="${pageContext.request.contextPath}/struts/xhtml/validation.js" type="text/javascript"></script>  

下面给出了验证xml,它被命名为ActionClass-validation.xml,并且与调用验证的类放在同一个包中:

        <validators>
            <field name="userModel.userName">
                <field-validator type="requiredstring">
                    <message>UserName Is Required</message>
                </field-validator>
            </field>
        </validators>

提交表单后,不会触发验证,执行将继续执行并调用struts2操作类 这里有什么我想念的吗?我搜索了很多,但找不到任何答案。请帮忙 struts2-core版本:2.3.4 struts2-jquery-plugin:3.3.3 动作配置看起来如下:

<action class="addUserAction" method="addUser">
    <interceptor-ref name="jsonValidationWorkflowStack"/>
    <result>addUser.jsp</result>
</action>

除了上面,我使用spring + struts2 + hibernate来实现上述任务。当我尝试struts2-jason wiki页面中显示的示例:时,我收到错误:找不到名为AddUserAction的类的动作(这是spring-beans.xml中的一个bean) 调用验证器inteceptor时似乎抛出了错误。 当我在动作类 - AddUserAction上注释掉用于验证的注释时,此错误消失并成功加载页面。 以下是我的问题: 1)如何使用spring和struts2 convention插件?这是因为,convention插件使用自己的机制来映射URL和操作(使用注释或默认行为)。 2)以前,我期待struts.xml文件可以用于url到action的映射,而注释可以用于验证。 (使用约定插件)但这种方法似乎不起作用。(约定插件+ struts.xml不起作用)

2 个答案:

答案 0 :(得分:1)

struts2 ajax validation是一个客户端验证,由dojo本地提供,这里是Struts2 Ajax validation的文档。 struts2-jquery plugin使用jsonValidationWorkflowStack提供此功能,您可以像这样使用它:Example

答案 1 :(得分:-1)

我试过了。它的工作非常好。但是如果您的表单有一个用于上传的输入文件,则ajax验证不起作用。