我正在使用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不起作用)
答案 0 :(得分:1)
struts2 ajax validation
是一个客户端验证,由dojo本地提供,这里是Struts2 Ajax validation的文档。 struts2-jquery plugin
使用jsonValidationWorkflowStack
提供此功能,您可以像这样使用它:Example
答案 1 :(得分:-1)
我试过了。它的工作非常好。但是如果您的表单有一个用于上传的输入文件,则ajax验证不起作用。