(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;
}
相关推荐
此外,为了更好地展示数据,可能还需要在Struts2中使用Interceptor(拦截器),例如,`params`拦截器用于将请求参数绑定到Action,`validation`拦截器负责验证表单数据,`workflow`拦截器管理Action的生命周期。...
一个简单的例子是使用`$.ajax()`函数,指定URL为Struts2 Action的路径,方法为GET或POST,根据你的需求来传递参数,如待验证的用户名。 3. **服务器端验证**:在Action类中,你需要编写一个方法来检查用户名是否已...
8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...
可以使用Struts2的AJAX验证功能,实现表单字段的实时验证,无需提交整个表单即可检查输入的有效性。 8. **AJAX分页**: 对于需要分页显示的数据,Struts2 jQuery插件提供了`sj:tabbedpanel`和`sj:datatables`等...
Struts2、jQuery和Ajax是Web开发中的三大关键技术,它们结合使用可以构建高效、动态且用户友好的登录验证系统。以下是对这些技术及其在登录验证中的应用的详细说明。 Struts2是一个基于MVC(Model-View-Controller...
4. Struts2 Action接收并处理文件:在服务器端,Struts2的Action类接收到请求,解析文件数据,并进行验证和存储。 5. 返回响应:服务器处理完文件后,返回一个响应,告知前端文件上传的结果,如成功或失败。 6. 更新...
### 基于Struts 2 Ajax实现的Login应用知识点详解 #### 一、Struts 2框架简介 Struts 2是Apache Struts的第二个版本,它是一个用于开发Java Web应用程序的开源框架。该框架提供了强大的MVC(模型-视图-控制器)...
Struts2提供了强大的拦截器(Interceptor)机制,可以实现如权限验证、日志记录等功能。同时,它支持多种结果类型,包括JSP、FreeMarker、Velocity等模板语言,以及JSON和XML等数据格式。 Ajax,即Asynchronous ...
此外,Struts2还提供了拦截器(Interceptor)机制,用于在Action执行前后添加额外的功能,如日志记录、权限验证等。 接下来,让我们关注Ajax的集成。在Struts2中,可以使用两种主要的方式来实现Ajax请求: 1. **...
在"Struts2+Ajax实现的用户登录"场景中,首先,我们需要在Struts2的配置文件(struts.xml)中定义一个Action,这个Action将处理用户的登录请求。Action通常会包含一个方法,比如`execute()`,该方法会在用户提交登录...
Struts和Ajax是两种在Web开发中常用的框架和技术,它们结合使用可以构建出高效、动态且用户友好的应用程序。在本篇文章中,我们将深入探讨Struts与Ajax的整合及其在增删查改(CRUD)操作中的应用。 首先,让我们...
在J2EE开发中,Struts2框架和AJAX技术的结合使用能够提供更优秀的用户体验,特别是在处理表单验证和实时交互方面。本实例主要讲解如何在Struts2中集成AJAX,实现注册用户的即时用户名可用性检查。这个功能对于防止...
5. **Struts2拦截器**:Struts2的拦截器可以处理Ajax请求,比如进行权限验证、日志记录等。通过在struts.xml配置文件中添加特定的拦截器,可以实现对Ajax请求的统一处理。 6. **错误处理**:在Ajax请求中,正确处理...
Struts2框架通过Struts2-jQuery插件或Struts2-Conventions插件来支持Ajax功能。这两个插件提供了方便的标签库,使得在JSP页面中使用Ajax变得更加简单。 3. **Struts2-jQuery插件**: - **安装**:首先,你需要将...
### Ajax 验证与 Struts2 的深度融合 #### 原文解读与核心知识点提炼 **原文题目**:“Ajax 验证和 Struts2” **作者**:Oleg Mikheev **来源**:JavaWorld.com **链接**:...
"Inline Form Validation Engine+Struts2的AJAX验证" 这个标题提到了两个关键组件,一个是Inline Form Validation Engine,另一个是Struts2的AJAX验证。Inline Form Validation Engine是一个前端表单验证插件,它...
在Web开发中,Struts2、Ajax和JSON的结合使用能实现异步数据交互,提高用户体验。本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`<s:select/>`标签)。 ...
4. **Struts 2与AJAX的集成**:介绍如何在Struts 2应用中使用AJAX,可能包括XMLHttpRequest对象、JSON数据格式、以及Struts2-AJAX插件的使用。 5. **实战示例**:提供了一些实际的开发案例,如创建一个简单的Struts ...
3. 在struts2的Action通过2种不同的实现方法返回json格式的字符串。 4. 针对商品实现简单无刷新上传与下载 4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar....