`

struts2 xml 校验 小记1

阅读更多

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框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...

    Struts2 校验器

    3. **配置校验规则**:Struts2的校验规则可以通过XML或注解方式定义。XML方式通常在struts.xml或相应的action类配置文件中定义,而注解方式则直接在Action类的属性上标注,例如使用`@RequiredString`、`@Size`等。 ...

    struts2官方例子7-表单验证 xml形式的验证

    总结起来,Struts2的XML表单验证是通过创建XML文件定义验证规则,然后在Action类中处理数据,通过框架自动进行验证并返回错误信息。这种方式使得验证逻辑与业务逻辑分离,提高了代码的可维护性和复用性。对于大型...

    struts2输入校验

    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 Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex Ajax struts2 xml flex

    struts2输入校验深入总结

    Struts2集成了Apache Commons Validator,可以通过配置XML文件定义校验规则。在struts.xml文件中配置`&lt;validators&gt;`元素,然后在Action类中创建一个ValidatorForm对象,将表单字段映射到该对象的属性,即可应用预...

    Struts2数据校验与国际化

    3. 配置文件校验:除了代码实现外,Struts2还支持基于XML的配置文件进行校验。在struts.xml或相应的action配置中,可以定义field和global validation规则,这种方式更加灵活且易于维护。 接下来,我们谈谈Struts2的...

    Struts2中Struts.xml配置文件详解

    "Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...

    Struts2的输入校验

    在Struts2中,输入校验是确保数据安全、准确和有效的重要环节。本篇文章将深入探讨Struts2的输入校验机制及其相关知识点。 **输入校验的重要性** 输入校验是Web应用开发中的关键步骤,它可以防止恶意用户提交无效或...

    Struts2校验框架应用

    Struts2作为一款流行的Java Web开发框架,提供了一套强大的校验框架,使得开发者能够方便地对用户输入数据进行验证,确保数据的准确性和安全性。本文将深入探讨Struts2校验框架的应用,包括其核心概念、配置方式、...

    Struts2自定义校验框架

    1. **Struts2验证框架概述** Struts2的验证框架主要负责处理用户提交的数据,进行验证,并在验证失败时显示错误消息。它支持两种验证方式:基于注解的验证(Annotation-based Validation)和基于XML的验证(XML-...

    struts2的输入校验

    开始添加LoginAction-validation.xml的校验内容,我主要是介绍struts2的校验有哪几种形式,具体的 校验格式,有多种,我就不一一介绍了,大家可以自已研究下。 把刚在LoginAction 里加的validate()去掉! 就OK了,...

    Dom4j解析struts2框架的struts.xml

    在Struts2中,`struts.xml`是核心配置文件,它定义了应用的各个组件,如动作(Actions)、结果(Results)、拦截器(Interceptors)等。本篇文章将深入探讨如何使用Dom4j这个XML处理库来解析`struts.xml`,以便...

    struts2输入校验总结

    Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...

    Struts2 输入校验

    Struts2集成Apache Commons Validator,允许开发者创建XML配置文件来定义校验规则。在这些XML文件中,你可以设置字段的校验规则,如长度、格式等。然后在Action类中声明对应的ActionForm,Struts2会基于这些规则进行...

    struts.xml(struts2配置)

    `struts.xml`是Struts2框架的核心配置文件,用于定义应用程序的行为、控制器、动作映射、结果类型和其他关键组件。下面我们将深入探讨`struts.xml`的各个方面。 1. **配置文件结构** `struts.xml`文件通常位于项目...

    struts2 xml

    Struts2是一个强大的MVC框架,它以XML配置文件为核心,允许开发者定义应用程序的行为和结构。在Struts2中,XML配置文件(通常命名为struts.xml)是整个框架的基石,它负责设置Action、拦截器、结果页面以及其他关键...

Global site tag (gtag.js) - Google Analytics