struts的配置文件xml校验有很多前辈都说过了,我这里就不赘述了
[java]
action代码
package com.koolsee.cdn.action; import java.util.HashMap; import java.util.Map; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.apache.struts2.rest.DefaultHttpHeaders; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import com.koolsee.cdn.service.SystemConfigService; import com.opensymphony.xwork2.ModelDriven; @Controller @Results({@Result(name = "success", type = "redirectAction", params = {"actionName", "system-config"}), @Result(name = "input", type = "redirectAction", params = {"actionName", "system-config"})}) public class SystemConfigAction extends BaseAction implements ModelDriven<Map<String, Object>> { /** * */ private static final long serialVersionUID = 1L; private Map<String, Object> systemConfigMap = new HashMap<String, Object>(); @Autowired private SystemConfigService systemConfigService; private Integer id; /** * 进入系统参数配置主页面 * @return DefaultHttpHeaders * @throws Exception * @see [类、类#方法、类#成员] * @since [产品/模块版本] */ public DefaultHttpHeaders edit() throws Exception { this.systemConfigMap.clear(); this.systemConfigMap = this.systemConfigService.selectAll(); return new DefaultHttpHeaders(EDIT).disableCaching(); } /** * 修改系统参数配置信息 * @return String * @throws Exception * @see [类、类#方法、类#成员] * @since [产品/模块版本] */ public DefaultHttpHeaders update() throws Exception { this.systemConfigService.updateSystemConfig(this.systemConfigMap); this.addActionMessage("系统配置信息修改成功"); return this.edit(); } public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @Override public Map<String, Object> getModel() { return this.systemConfigMap; } }
校验的 xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <validators> <!-- Field-Validator Syntax --> <!--邮件服务器域名 --> <field name="MAILSERVERDOMAIN[0]"> <field-validator type="requiredstring"> <param name="trim">true</param> <message key="messages.system.config.mailserverdomain.required"></message> </field-validator> <field-validator type="stringlength"> <param name="maxLength">1024</param> <message key="messages.system.config.mailserverdomain.length"></message> </field-validator> </field> <!-- 邮箱 --> <field name="SERVERMAIL[0]"> <field-validator type="requiredstring"> <param name="trim">true</param> <message key="messages.system.config.servermail.required"></message> </field-validator> <field-validator type="email"> <message key="messages.system.config.servermail.check"></message> </field-validator> <field-validator type="stringlength"> <param name="maxLength">1024</param> <message key="messages.system.config.servermail.length"></message> </field-validator> </field> <!--服务器邮箱账号 --> <field name="SERVERMAILACC[0]"> <field-validator type="requiredstring"> <param name="trim">true</param> <message key="messages.system.config.servermailacc.required"></message> </field-validator> <field-validator type="stringlength"> <param name="maxLength">1024</param> <message key="messages.system.config.servermailacc.length"></message> </field-validator> </field> <!--服务器邮箱密码 --> <field name="SERVERMAILPWD[0]"> <field-validator type="requiredstring"> <param name="trim">true</param> <message key="messages.system.config.servermailpwd.required"></message> </field-validator> <field-validator type="stringlength"> <param name="maxLength">1024</param> <message key="messages.system.config.servermailpwd.length"></message> </field-validator> </field> </validators>
对应的需要校验的jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" autoFlush="true"%> <%@taglib uri="/struts-tags" prefix="s"%> <%@ taglib prefix="ks" uri="http://www.koolsee.com/el/functions" %> <!DOCTYPE html> <html> <head> <title><s:text name="messages.system.config.edit"/></title> <script type="text/javascript"> $(document).ready(function(){ jQuery("#k_form").submit(function(){ var encryptChecked = jQuery("#mailIsEncryptChk").attr("checked"); var verifyChecked = jQuery("#mailIsVerifyChk").attr("checked"); if(encryptChecked && encryptChecked == "checked"){ jQuery("#mailIsEncrypt").val("1"); }else{ jQuery("#mailIsEncrypt").val("0"); } if(verifyChecked && verifyChecked == "checked"){ jQuery("#mailIsVerify").val("1"); }else{ jQuery("#mailIsVerify").val("0"); } }); }); </script> </head> <body> <div> <ul class="breadcrumb"> <li> <a href="${basePath}"><s:text name="messages.index"/></a> <span class="divider">/</span> </li> <li> <a href="#">系统参数配置</a> </li> </ul> </div> <div class="box-content"> <s:actionmessage/> <s:actionerror/> <s:form cssClass="form-horizontal" method="post" id="k_form" action="%{basePath}/system-config/0"> <s:hidden name="_method" value="put" /> <fieldset> <legend>普通数据</legend> <div class="control-group"> <label class="control-label"><s:text name="messages.system.config.mailserverdomain"/>:</label> <div class="controls"> <s:textfield id="mailServerDomain" name="MAILSERVERDOMAIN" maxlength="1024"></s:textfield> <span class="errorMessage">*</span> <span class="help-inline"><s:fielderror><s:param>MAILSERVERDOMAIN[0]</s:param></s:fielderror></span> </div> </div> <div class="control-group"> <label class="control-label"><s:text name="messages.system.config.servermail"/>:</label> <div class="controls"> <s:textfield id="serverMail" name="SERVERMAIL" maxlength="1024"></s:textfield> <span class="errorMessage">*</span> <span class="help-inline"><s:fielderror><s:param>SERVERMAIL[0]</s:param></s:fielderror></span> </div> </div> <div class="control-group"> <label class="control-label"><s:text name="messages.system.config.servermailacc"/>:</label> <div class="controls"> <s:textfield id="serverMailAcc" name="SERVERMAILACC" maxlength="1024"></s:textfield> <span class="errorMessage">*</span> <span class="help-inline"><s:fielderror><s:param>SERVERMAILACC[0]</s:param></s:fielderror></span> </div> </div> <div class="control-group"> <label class="control-label"><s:text name="messages.system.config.servermailpwd"/>:</label> <div class="controls"> <s:textfield id="serverMailPwd" name="SERVERMAILPWD" maxlength="1024"></s:textfield> <span class="errorMessage">*</span> <span class="help-inline"><s:fielderror><s:param>SERVERMAILPWD[0]</s:param></s:fielderror></span> </div> </div> <div class="control-group"> <div class="controls"> <s:hidden id="mailIsEncrypt" name="MAILISENCRYPT" ></s:hidden> <s:if test="#attr.MAILISENCRYPT==1"> <input type="checkbox" id="mailIsEncryptChk" checked="checked"/><s:text name="messages.system.config.mailisencrypt"/> </s:if> <s:else> <input type="checkbox" id="mailIsEncryptChk" /><s:text name="messages.system.config.mailisencrypt"/> </s:else> </div> </div> <div class="control-group"> <div class="controls"> <s:hidden id="mailIsVerify" name="MAILISVERIFY" ></s:hidden> <s:if test="#attr.MAILISVERIFY==1"> <input type="checkbox" id="mailIsVerifyChk" checked="checked" /><s:text name="messages.system.config.mailisverify"/> </s:if> <s:else> <input type="checkbox" id="mailIsVerifyChk" /><s:text name="messages.system.config.mailisverify"/> </s:else> </div> </div> <div class="form-actions"> <s:token></s:token> <input type="submit" class="btn btn-primary" value="<s:text name='messages.save' />" /> </div> </fieldset> </s:form> </div> </body> </html>
特别注意这里的 <field name="MAILSERVERDOMAIN[0]"> <field name="SERVERMAIL[0]"> <field name="SERVERMAILACC[0]"> <field name="SERVERMAILPWD[0]">;因为在action中ModelDriven<Map<String, Object>> 模型驱动中加载的是MAP,所以在加载数据的时候是以数组的形式赋值给相关的KEY的,即我们验证取值的时候验证的是[0];页面上取验证信息的时候当然也是根据field 的name属性值来取的,即 如:<s:fielderror><s:param>MAILSERVERDOMAIN[0]</s:param></s:fielderror>
当模型驱动加载的是Map的时候,struts2 的xml验证实例述说完毕,随笔,欢迎各位大牛批评指正,邮箱:xulonghui2011@163.com
顺便提一下,本人网店 http://shop104105266.taobao.com 店名叫"真惠充值" 话费 Q币Q点 游戏点卡充值 有空记得收藏 光顾哦
相关推荐
### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...
3. **配置校验规则**:Struts2的校验规则可以通过XML或注解方式定义。XML方式通常在struts.xml或相应的action类配置文件中定义,而注解方式则直接在Action类的属性上标注,例如使用`@RequiredString`、`@Size`等。 ...
总结起来,Struts2的XML表单验证是通过创建XML文件定义验证规则,然后在Action类中处理数据,通过框架自动进行验证并返回错误信息。这种方式使得验证逻辑与业务逻辑分离,提高了代码的可维护性和复用性。对于大型...
1. **Struts2的校验框架**: Struts2提供了内置的验证框架,基于XML配置或者注解实现。这个框架允许开发者定义一组规则来检查用户提交的数据,这些规则可以在Action类中应用。 2. **XML输入校验**: - **创建校验...
Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex
Struts2集成了Apache Commons Validator,可以通过配置XML文件定义校验规则。在struts.xml文件中配置`<validators>`元素,然后在Action类中创建一个ValidatorForm对象,将表单字段映射到该对象的属性,即可应用预...
3. 配置文件校验:除了代码实现外,Struts2还支持基于XML的配置文件进行校验。在struts.xml或相应的action配置中,可以定义field和global validation规则,这种方式更加灵活且易于维护。 接下来,我们谈谈Struts2的...
"Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...
在Struts2中,输入校验是确保数据安全、准确和有效的重要环节。本篇文章将深入探讨Struts2的输入校验机制及其相关知识点。 **输入校验的重要性** 输入校验是Web应用开发中的关键步骤,它可以防止恶意用户提交无效或...
Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...
1. **Struts2验证框架概述** Struts2的验证框架主要负责处理用户提交的数据,进行验证,并在验证失败时显示错误消息。它支持两种验证方式:基于注解的验证(Annotation-based Validation)和基于XML的验证(XML-...
开始添加LoginAction-validation.xml的校验内容,我主要是介绍struts2的校验有哪几种形式,具体的 校验格式,有多种,我就不一一介绍了,大家可以自已研究下。 把刚在LoginAction 里加的validate()去掉! 就OK了,...
在Struts2中,`struts.xml`是核心配置文件,它定义了应用的各个组件,如动作(Actions)、结果(Results)、拦截器(Interceptors)等。本篇文章将深入探讨如何使用Dom4j这个XML处理库来解析`struts.xml`,以便...
Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...
Struts2集成Apache Commons Validator,允许开发者创建XML配置文件来定义校验规则。在这些XML文件中,你可以设置字段的校验规则,如长度、格式等。然后在Action类中声明对应的ActionForm,Struts2会基于这些规则进行...
`struts.xml`是Struts2框架的核心配置文件,用于定义应用程序的行为、控制器、动作映射、结果类型和其他关键组件。下面我们将深入探讨`struts.xml`的各个方面。 1. **配置文件结构** `struts.xml`文件通常位于项目...
Struts2是一个强大的MVC框架,它以XML配置文件为核心,允许开发者定义应用程序的行为和结构。在Struts2中,XML配置文件(通常命名为struts.xml)是整个框架的基石,它负责设置Action、拦截器、结果页面以及其他关键...