`

struts2 ajax 验证

    博客分类:
  • js
阅读更多

(1)<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>


    <sx:head cache="false" compressed="false"/>

<div id="response" style="border: 1px solid black">
    Response goes here
</div>

<br />

<s:form method="post" theme="xhtml" namespace="/nodecorate" action="quizAjax" id="form">
    <s:textfield label="Name" name="name" />
    <s:textfield label="Age" name="age" />
    <s:textfield label="Favorite color" name="answer"/>
    <sx:submit
        validate="true"                        //ajax验证
        ajaxAfterValidation="true"    //这个表示验证通过后,提交,但不跳转
        targets="response"              //这个表示响应的内容填充到id=response的div中
        showLoadingText="false"/>
</s:form>

 

<sx:a
    formId="form"
    validate="true"                     //ajax验证
    ajaxAfterValidation="true"    //不跳转
    targets="response"              //显示响应的内容到id="response"中
    showLoadingText="false">Submit Form with a link</sx:a>这个链接可以验证form,并提交,但是不跳转

 

<input type="checkbox" id="checkbox">Submit Form listening to an event on an element (check to submit)
<sx:bind
    id="bind"
    formId="form"                //这个是验证from的
    sources="checkbox"
    validate="true"
    events="onchange"    
    ajaxAfterValidation="true"
    targets="response"
    showLoadingText="false"/>

选中checkbox,并点击。也可以验证,提交但不跳转。

 

 

<h5>2.Use AJAX validation, and regular request (ajaxAfterValidation="false", default), if validation succeeds</h5>
<br />

<s:form method="post" theme="xhtml" namespace="/nodecorate" action="quizAjax" id="form2">
    <s:textfield label="Name" name="name" />
    <s:textfield label="Age" name="age" />
    <s:textfield label="Favorite color" name="answer"/>
    <sx:submit
        validate="true"                                    //ajax验证
        ajaxAfterValidation="false
"                 //跳转
        showLoadingText="false"/>
</s:form>

<sx:a
    formId="form2"
    validate="true"
    ajaxAfterValidation="false"
    showLoadingText="false">Submit Form with a link</sx:a>
<br /><br />

<input type="checkbox" id="checkbox2">Submit Form listening to an event on an element (check to submit)
<sx:bind
    formId="form2"
    sources="checkbox2"
    validate="true"
    events="onchange"
    ajaxAfterValidation="false"
    showLoadingText="false"/>


</body>
</html>

(2)上面的需要在action中加interceptor:

<action name="quizAjax" class="org.apache.struts2.showcase.validation.QuizAction">
            <interceptor-ref name="jsonValidationWorkflowStack"/>
            <result name="input">quiz-ajax.jsp</result>
            <result>quiz-success.jsp</result>
        </action>

(3)QuizAction-validation.xml         //放在和平共处QuizAction在同一目录,QuizAction是个Action,它象个javabean.没有执行任何方法。继承ActionSupport。

它有三个属性:name,age,color.它只对name,age验证,代码如下:

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<!--  START SNIPPET: quizValidators -->
<!--
    Add the following DOCTYPE declaration as first line of your XXX-validation.xml file:
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-->
<validators>
    <field name="name">
        <field-validator type="requiredstring">
            <message>You must enter a name</message>
        </field-validator>
    </field>
    <field name="age">
        <field-validator type="int">
            <param name="min">13</param>
            <param name="max">19</param>
            <message>Only people ages 13 to 19 may take this quiz</message>
        </field-validator>
    </field>

<!--

       <field name="birthday">
  <field-validator type="date">
   <message>Birthday Required</message>
  </field-validator>
 </field>

 

          <field name="dateValidatorField">
  <field-validator type="date">
   <param name="min">01/01/1990</param>
   <param name="max">01/01/2000</param>
   <message><![CDATA[ must be a min 01-01-1990 max 01-01-2000 if supplied ]]></message>
  </field-validator>
 </field>
 <field name="emailValidatorField">
  <field-validator type="email">
   <message><![CDATA[ must be a valid email if supplied ]]></message>
  </field-validator>
 </field>
 <field name="urlValidatorField">
  <field-validator type="url">
   <message><![CDATA[ must be a valid url if supplied ]]></message>
  </field-validator>
 </field>
 <field name="stringLengthValidatorField">
  <field-validator type="stringlength">
   <param name="maxLength">4</param>
   <param name="minLength">2</param>
   <param name="trim">true</param>
   <message><![CDATA[ must be a String of a specific greater than 1 less than 5 if specified ]]></message>
  </field-validator>
 </field>
 <field name="regexValidatorField">
  <field-validator type="regex">
   <param name="expression">.*\.txt</param>
   <message><![CDATA[ regexValidatorField must match a regexp (.*\.txt) if specified ]]></message>
  </field-validator>
 </field>

        <field name="requiredValidatorField">
  <field-validator type="required">
   <message><![CDATA[ required ]]></message>
  </field-validator>
 </field>

 

 

-->
</validators>

<!--  END SNIPPET: quizValidators  -->

(4)

.errorMessage {
 color: red;
}

分享到:
评论

相关推荐

    struts2ajax项目

    此外,为了更好地展示数据,可能还需要在Struts2中使用Interceptor(拦截器),例如,`params`拦截器用于将请求参数绑定到Action,`validation`拦截器负责验证表单数据,`workflow`拦截器管理Action的生命周期。...

    struts2的Ajax实现注册验证

    一个简单的例子是使用`$.ajax()`函数,指定URL为Struts2 Action的路径,方法为GET或POST,根据你的需求来传递参数,如待验证的用户名。 3. **服务器端验证**:在Action类中,你需要编写一个方法来检查用户名是否已...

    Struts2+Jquery+Ajax

    8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...

    struts2对AJAX的支持

    可以使用Struts2的AJAX验证功能,实现表单字段的实时验证,无需提交整个表单即可检查输入的有效性。 8. **AJAX分页**: 对于需要分页显示的数据,Struts2 jQuery插件提供了`sj:tabbedpanel`和`sj:datatables`等...

    struts2 + jquery +ajax 登录验证

    Struts2、jQuery和Ajax是Web开发中的三大关键技术,它们结合使用可以构建高效、动态且用户友好的登录验证系统。以下是对这些技术及其在登录验证中的应用的详细说明。 Struts2是一个基于MVC(Model-View-Controller...

    struts2+jquery+ajax文件异步上传

    4. Struts2 Action接收并处理文件:在服务器端,Struts2的Action类接收到请求,解析文件数据,并进行验证和存储。 5. 返回响应:服务器处理完文件后,返回一个响应,告知前端文件上传的结果,如成功或失败。 6. 更新...

    基于Struts 2 Ajax实现的Login应用

    ### 基于Struts 2 Ajax实现的Login应用知识点详解 #### 一、Struts 2框架简介 Struts 2是Apache Struts的第二个版本,它是一个用于开发Java Web应用程序的开源框架。该框架提供了强大的MVC(模型-视图-控制器)...

    struts2+ajax+jquery

    Struts2提供了强大的拦截器(Interceptor)机制,可以实现如权限验证、日志记录等功能。同时,它支持多种结果类型,包括JSP、FreeMarker、Velocity等模板语言,以及JSON和XML等数据格式。 Ajax,即Asynchronous ...

    struts2_ajax.rar_struts2 ajax

    此外,Struts2还提供了拦截器(Interceptor)机制,用于在Action执行前后添加额外的功能,如日志记录、权限验证等。 接下来,让我们关注Ajax的集成。在Struts2中,可以使用两种主要的方式来实现Ajax请求: 1. **...

    Struts2+Ajax实现的用户登录

    在"Struts2+Ajax实现的用户登录"场景中,首先,我们需要在Struts2的配置文件(struts.xml)中定义一个Action,这个Action将处理用户的登录请求。Action通常会包含一个方法,比如`execute()`,该方法会在用户提交登录...

    Struts+ajax

    Struts和Ajax是两种在Web开发中常用的框架和技术,它们结合使用可以构建出高效、动态且用户友好的应用程序。在本篇文章中,我们将深入探讨Struts与Ajax的整合及其在增删查改(CRUD)操作中的应用。 首先,让我们...

    struts+ajax实例

    在J2EE开发中,Struts2框架和AJAX技术的结合使用能够提供更优秀的用户体验,特别是在处理表单验证和实时交互方面。本实例主要讲解如何在Struts2中集成AJAX,实现注册用户的即时用户名可用性检查。这个功能对于防止...

    struts2ajax

    5. **Struts2拦截器**:Struts2的拦截器可以处理Ajax请求,比如进行权限验证、日志记录等。通过在struts.xml配置文件中添加特定的拦截器,可以实现对Ajax请求的统一处理。 6. **错误处理**:在Ajax请求中,正确处理...

    struts2中使用ajax

    Struts2框架通过Struts2-jQuery插件或Struts2-Conventions插件来支持Ajax功能。这两个插件提供了方便的标签库,使得在JSP页面中使用Ajax变得更加简单。 3. **Struts2-jQuery插件**: - **安装**:首先,你需要将...

    Ajax 验证和Struts2

    ### Ajax 验证与 Struts2 的深度融合 #### 原文解读与核心知识点提炼 **原文题目**:“Ajax 验证和 Struts2” **作者**:Oleg Mikheev **来源**:JavaWorld.com **链接**:...

    Inline Form Validation Engine+Struts2的AJAX验证

    "Inline Form Validation Engine+Struts2的AJAX验证" 这个标题提到了两个关键组件,一个是Inline Form Validation Engine,另一个是Struts2的AJAX验证。Inline Form Validation Engine是一个前端表单验证插件,它...

    Struts2+ajax+json返回list.docx

    在Web开发中,Struts2、Ajax和JSON的结合使用能实现异步数据交互,提高用户体验。本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`&lt;s:select/&gt;`标签)。 ...

    Struts 2及AJAX框架的详细介绍

    4. **Struts 2与AJAX的集成**:介绍如何在Struts 2应用中使用AJAX,可能包括XMLHttpRequest对象、JSON数据格式、以及Struts2-AJAX插件的使用。 5. **实战示例**:提供了一些实际的开发案例,如创建一个简单的Struts ...

    ajax_struts2_上传与下载_无刷新

    3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....

Global site tag (gtag.js) - Google Analytics