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输入校验
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输入校验 对指定方法进行输入校验
struts2官方例子7-表单验证 xml形式的验证,主要是在相应的action类旁,新建一个对应的xml文件,进行验证
开始添加LoginAction-validation.xml的校验内容,我主要是介绍struts2的校验有哪几种形式,具体的 校验格式,有多种,我就不一一介绍了,大家可以自已研究下。 把刚在LoginAction 里加的validate()去掉! 就OK了,...
Struts2数据校验与国际化,有validate()方法校验,有validateXxx()方法校验,有配置文件校验;国际化:有英,香港,内地
NULL 博文链接:https://chaoyi.iteye.com/blog/2161948
struts2输入校验总结,struts2自带的校验器,以及校验器不能做的check的处理的总结
struts.xml文件配置解释,对action配置进行说明
struts2文件上传,与xml校验 struts2文件校验可通过xml配对action的名称去校验属性的值。例如UploadAction.java中有一个book的属性。那么我可以定义一个UploadAction-validation.xml去校验这个book属性的内容。 xml的...
struts2校验器,字段,非字段校验器的语法规则……
绝对的好东西 struts2.0中struts.xml配置文件详解
Struts2的校验框架 Struts2的校验框架 Struts2的校验框架
本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。 本人写的struts2 输入校验的小程序,希望大家踊跃下载。
Struts2中struts_xml的Action配置详解
Struts2校验框架应用
Struts 2 输入校验
Dom4j解析struts2框架的struts.xml,自定义struts框架需要解析配置文件