Struts2 校验(XML配置校验)

XML校验工具,可以用来进行XML合法性检验 W3C 校验XML的工具,XML校验工具,可以用来进行XML合法性检验 立即下载

参考文档:
    http://struts.apache.org/2.0.9/docs/ajax-client-side-validation.html
    http://struts.apache.org/2.0.9/docs/pure-javascript-client-side-validation.html
    http://struts.apache.org/2.0.9/docs/client-validation.html

参考示例:
    http://struts.apache.org/2.0.9/docs/ajax-validation.html


Struts2 校验(XML配置校验)

 

 

基本说明:

 

Struts校验可以分为两种类型:Annotation型,XML配置型

 

Annotation型主要使用Annotation来配置Action中的属性,这里我们做过多的介绍,需要看的请参看我的其他相关文章。

 

XML配置型主要是指,使用XML来描述配置信息,之后提供给Struts框架做校验。

 

使用Struts2,XML配置型的校验可以使用三种方式:普通的服务器端校验方式,客户纯JavaScript方式端校验,和Ajax方式的校验。

 

普通的服务器端校验方式:

     客户端提交信息到服务器,在服务器上使用XML配置信息,校验客户端提交的信息,错误的情况下,返回input页面,显示校验错误信息。

 

客户端纯JavaScript校验方式:

     在输入画面上,根据XML文件中的配置内容生成对应的JavaScript校验脚本,在提交数据的时候首先使用这些生成的JavaScript校验输入信息,错误情况下在画面上显示错误信息,不需要向服务器提交内容,只有输入数据校验正确的情况下才向服务器提交请求。这种方式的校验不支持所有Struts2内置的校验,只支持一部分校验:

    required validator 
    requiredstring validator 
    stringlength validator 
    regex validator 
    email validator 
    url validator 
    int validator 
    double validator

Ajax方式校验

     在提交请求的时候,首先使用AJAX的方式将数据提交到服务器,在校验出错的情况下在页面显示错误信息,但是不刷新页面,在校验成功的情况下,才向服务器提交请求。

 

三种方式比较

 普通的服务端校验方式客户端纯JavaScriptAjax方式
位置服务器客户端 服务器
是否刷新页面是否否
校验代码JavaJavaScriptJava
具体实现

1 定义Action类

    Action.java

2 定义配置文件

    Action-validation.xml

3 在struts.xml中定义action,注意由于使用了validation,所以必须定义input名字的result。

    <action name="" class="">

        <result></result>

        <result name="input"></result>

    </action>

4 定义JSP页面的Form,例如:

<s:form action="quizAction" >

    <s:textfield label="Name" name="name"/>
    <s:textfield label="Age" name="age"/>
    <s:textfield label="Favorite color" name="answer"/>
    <s:submit/>

</s:form>

与“普通的服务端校验方式”基本相同,但是需要在form定义的时候添加validate="true",例如:

<s:form action="quizAction" validate="true">

    <s:textfield label="Name" name="name"/>
    <s:textfield label="Age" name="age"/>
    <s:textfield label="Favorite color" name="answer"/>
    <s:submit/>

</s:form>

与“普通的服务端校验方式”基本相同,但是需要做如下修改:

1 安装dojo plugin

2 JSP中使用dojo plugin

<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
3 在head内部追加head标签(引入dojo的js库)

 <sx:head />
4 修改form定义

<s:form method="post" theme="ajax"  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" />
</s:form>

 

说明:struts-dojo-plugin在2.1.0的时候可能会Release。现在使用需要从Subversion中去除2.1.0SNAPSHOT代码:

svn http://svn.apache.org/repos/asf/struts/struts2/trunk

 

代码示例

 

// QuizAction 类

 

package example;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by IntelliJ IDEA.
 * User: ma.zhao@dl.cn
 * Date: 2007-9-8
 * Time: 13:58:16
 * To change this template use File | Settings | File Templates.
 */
public class QuizAction extends ActionSupport {
    private static final long serialVersionUID = -7505437345373234225L;

    private String name;
    private int age;
    private String answer;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAnswer() {
        return answer;
    }

    public void setAnswer(String answer) {
        this.answer = answer;
    }

    public String execute() {
        return SUCCESS;
    }
}

// QuizValidation.xml 校验配置文件

 

<!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>
</validators>

// struts.xml配置文件

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="example" namespace="/example" extends="struts-default">

        <action name="quizAction" class="example.QuizAction">
            <result name="input">/example/quiz-ajax.jsp</result>
            <result>/example/quiz-success.jsp</result>
        </action>
    </package>
</struts>

 

// JSP 文件

<%--
  Created by IntelliJ IDEA.
  User: ma.zhao@dl.cn
  Date: 2007-9-8
  Time: 14:02:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
<head><title>Quiz Action Validation</title></head>
<body>

<s:form action="quizAction" namespace="/example" validate="true">

    <s:textfield label="Name" name="name"/>
    <s:textfield label="Age" name="age"/>
    <s:textfield label="Favorite color" name="answer"/>
    <s:submit/>

</s:form>

</body>
</html>
 

特别说明(Ajax Validation):

为什么使用AJAX 校验?

纯的JavaScript校验不刷新页面,但是也不能使用所有的Struts2校验方法;服务端校验可以使用所有Struts2的校验方法,但是需要刷新页面。

Struts2 Ajax校验,既不需要刷新页面,又可以使用Struts2内置的所有的校验方法,所以我们比较倾向于使用Ajax校验。

 

现在(2007/09/08)Struts2的最新版本为2.0.9,还不支持dojo-plugin,所以还没有办法使用Ajax校验。所以要想使用Ajax Validation必须使用Struts2.1.0 SNAPSHOT版本。

 

下载:

使用Subversion可以从以下位置下载最新的Struts2的源代码:

http://svn.apache.org/repos/asf/struts/struts2/trunk 

 

构造:

在下载的apps目录下blank子目录下可以使用如下命令

mvn compile jar:jar

可以在target目录中看到:struts2-blank.war

 

在plugins目录dojo子目录下使用如下命令

mvn compile jar:jar

可以在target目录中看到dojo-plugin:struts2-dojo-plugin-2.1.0-SNAPSHOT.jar

 

按照上述的说明构造AJAX校验

 

一些变化:

Struts 配置文件:

 

<action name="quizAjax" class="example.QuizAction">
    <interceptor-ref name="jsonValidationWorkflowStack"/>
    <result name="input">/example/quiz-ajax.jsp</result>
    <result>/example/quiz-success.jsp</result>
</action>

 

这个interceptor是在Struts 2.1.0 才有的。

 

JSP文件:

<%--
  Created by IntelliJ IDEA.
  User: ma.zhao@dl.cn
  Date: 2007-9-8
  Time: 17:29:43
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>

<html>
<head>
    <title>Validation - AJAX</title>
    <sx:head />
</head>

<s:url id="url" namespace="/example" action="quizAjax"/>

<body>
<s:form method="post" theme="xhtml" namespace="/example" 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" />
</s:form>
</body>
</html> 

 

需要注意

<s:url id="url" namespace="/example" action="quizAjax"/>

 

提供了Dojo校验的URL,一定要注意。

 

 

 

 

 
微带T型一分四功分器HFSS仿真与实物制作教程 本文介绍了使用HFSS软件进行微带T型一分四功分器的仿真与使用国产立创EDA软件将HFSS仿真文件转为PCB可加工文件的方法 阅读详情

相关推荐

【AI Infra】【RLHF框架】VeRL中WorkerGroup与Ray资源调度的协同机制剖析

本文深入剖析了VeRL框架中WorkerGroup与Ray资源调度的协同机制。通过解析Ray Placement Group的资源抽象和VeRL的RayResourcePool封装,详细阐述了WorkerGroup如何与底层资源精确绑定,并实现RLHF训练中异构、多阶段任务的灵活资源分配与动态调整,为大规模分布式强化学习训练提供了高效解决方案。

weixin_29204205的博客 389

验证xml格式

原文链接http://zhhll.com.cn/2020/12/20/xml/xml%E7%9A%84%E6%A0%BC%E5%BC%8F/ 验证xml格式 DTD验证 可以使用DTD来定义XML文档的合法构建模块。DTD可以写在文档内部,也可以另外写一个文件 文档内部 <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,body)>

Lxn2zh的博客 4775

Element-cascader级联选择器增加全选功能

element el-cascader

weixin_44384273的博客 3728

XMl Schema校验

1.Schema概要 XML是可扩展标记语言,也就是说其中的节点标记设置由用户定义生成。如果没有有效的办法来校验XML的合法性,往往会导致很多问题。因此xml通过校验达到合法性规范性,同时也可以对xml节点中的数据校验。 这次学习中,运用的XML校验是通过XML Schema(XSD)。其本身是一个XML文档,所以必须满足XML文档结构。在每个Schema文档中必须包含一个根元素。

BERRYL_weibo的博客 6862

【文章阅读+代码复现】Point-GNN

Brief 在3D点云语义分割方法中,GNN已经做了很多可用的方案,但是在目标检测上依旧是采用比较传统的CNN和稀疏卷积的组合,这一篇文章是研究了图卷积在3D检测的中的用法。来自卡内基梅隆大学。已经被CVPR2020接收. 这里是 paper 这里是 code Abstruct 一个采用GNN设计的3D目标检测框架 过程是先将点云场景编码成图结构,随后设计了一个叫point-GNN的网络结构,在...

有所为,有所成长 1万+

工业相机TEC散热技术:从原理到高精度成像的实战解析

本文深入解析了工业相机TEC散热技术的核心原理与实战应用。通过阐述热电制冷器如何利用帕尔帖效应实现精准温控,有效抑制图像传感器暗电流噪声,从而保障高精度成像的稳定性。文章结合工业场景痛点,提供了从TEC选型、系统集成到控制逻辑的完整设计指南,并分享了不同应用场景下的实战案例,是提升工业视觉系统成像质量的关键技术解析。

weixin_29269441的博客 412

XML 验证

XML 验证:确保文档结构与规则一致性 XML 验证指检查文档是否符合格式规范(Well-Formed)和结构约束(Valid)。通过DTD或XML Schema定义规则,验证可保证数据可靠性,广泛应用于Web服务(如SOAP)、配置文件和EPUB电子书。 验证方法比较 DTD:语法简单,支持元素/属性定义,但功能有限。 XML Schema:支持数据类型、复杂约束,适合高精度验证。 示例(C#验证代码): XmlDocument doc = new XmlDocument(); doc.Schemas.A

m0_57545130的博客 1683

YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合

可扩展的高效物体检测BiFPN(加权双向特征金字塔网络)

Limiiiing的博客 5494

使用xsd验证xml格式的正确性

3.该方式验证xml格式正确性,轻代码重xsd配置,但也有好处,当xml格式发生改变时,无需修改代码,只需要对应修改xsd即可,且相对代码来说,易上手。

qq_37016994的博客 4575

从 SAP Gateway 旧 add-ons 卸载到 SAP S/4HANA 转换的清理路线

摘要: SAP Gateway系统的维护难点往往源于历史遗留组件的堆积,而非OData服务本身的复杂性。早期系统为支持多种服务类型而安装的各类add-ons(如IW_SCS、IW_CNT、GW_CORE等),随着系统升级和团队更替逐渐成为技术负债。自SAP NetWeaver 7.40起,核心功能已整合至SAP_GWFND组件,使架构显著简化。在向S/4HANA迁移时,需重点清理已废弃的add-ons(如IW_SCS、IW_GIL等),但必须谨慎验证其关联服务是否仍被调用。组件清理需结合系统日志和调用链分析

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 423

一分钟详解PCL中点云配准技术

原文首发于微信公众号「3D视觉工坊」: 一分钟详解PCL中点云配准技术 本文是对前两篇文章:点云配准(一 两两配准)以及3D点云(二 多福点云配准)的补充,希望可以在一定程度上帮助大家对点云配准理解地更为深刻。 一 PCL中点云配准技术的简单实现 在同一文件夹下,有测试数据文件monkey.ply,该文件是利用Blender创建的默认Monkey模型。 利用如下代码,将初始点云(图中绿色点云)...

3D视觉工坊 3704

xml的校验

XML的校验是通过XML Schema(XSD) 或DTD文件的语法规范来校验的。

qq_38054251的博客 586

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Struts2基于的XML配置方式的输入校验

1. 回顾上节课的知识 请你描述下在服务端的Action组件中如何处理输入验证? 继承ActionSupport类,重写validate() 不合法的情况交给validate 合法的情况交给execute 编写ValidateLoginAction package cn.zhengbin.action; import org.apache.commons.lang3.StringUtils; import com.opensymphony.xwork2.ActionSupport; public

qq_52269841的博客 167

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Struts2:输入校验-基于XML配置方式实现

使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。如果Action类为cn.itcast.UserAction,那么该文件的取名应...

minGW_Lee on the way 724

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Struts2 基于XML配置方式实现对action的所有方法进行校验

Struts2 基于XML配置方式实现对action的所有方法进行校验:                  .校验文件命名规则XxxAction-validation-xml,放置位置:与当前Action目录同级。     xml配置内容:                                  "-//Apache Struts//XWork Validator 1.0

ShallowDreams的专栏 409

struts2 基于XML配置方式实现校验(指定方法)

Struts2 基于XML对指定方法的校验,配置和对所有方法一致,只需修改xml文件名称即可:ActionCalssName-ActionName-validation.xml。

ShallowDreams的专栏 525

【Struts2十】校验表达二:使用xml配置validator来校验表单

手动校验还是不大优雅,Struts2还提供了另外一种xml配置的方式校验表单! 在Action的同目录下添加一个xml文件,文件名严格限制为:Action类名-Action别名_方法名-validation.xml: 如:ValidateXMLAction-validateXMLAction_aaa-validation.xml 1.ValidateXMLAction:

温故而知新 574

Struts2输入校验(XML方式)及其国际化配置

本章主要介绍struts2的XML配置方式输入校验。以下将结合一个实例程序进行说明。代码结构:关键代码:RegistAction.javaregist.jspstruts.xml使用XML方式检验需创建一个XML配置文件,位置在对应的Action同级目录下,命名规则为:Action名-validatioin.xml。校验文件可以有两种写法,一种是字段校验,一种是非字段校验。字段校验就是以字段为主,...

qq_38136705的博客 549

【Struts2学习笔记(11)】对action的输入校验和XML配置方式实现对action的所有方法进行输入校验

(1)在struts2中,我们可以实现对action的所有方法进行校验或者对action的指定方法进行校验。 对于输入校验struts2提供了两种实现方法: 1. 采用手工编写代码实现。 2. 基于XML配置方式实现。

徐刘根的博客 2464

转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验

出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html    http://www.blogjava.net/focusJ/archive/2010/11/15/367272.html 使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在...

weixin_30602505的博客 123
上一篇: GWT入门介绍(使用JSON格式的数据通讯)
下一篇: Sruts2 Blog 文章总索引
struts2
博客等级 码龄19年 885粉丝 103原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值