0

我正在用 struts2 + Jquery 插件编写一个 Web 应用程序。
我正在使用带有 sj:submit 来自 jquery 插件的标签的 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 头部分还包含对验证所需的两个 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)似乎在调用验证器拦截器时引发了错误。当我注释掉用于验证操作类的注释时 - AddUserAction,此错误消失并且页面加载成功。以下是我的问题: 1)如何使用 spring 和 struts2 约定插件?这是因为,约定插件使用自己的机制来映射 url 和操作(使用注释或默认行为)。2)Prevuosly,我期待 struts.xml 文件可用于 url 到操作的映射,注释可用于验证。

4

2 回答 2

1

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

于 2012-09-17T14:09:13.647 回答
-1

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

于 2012-10-02T11:33:46.780 回答