验证JSSP ¶
项目
关于JSSP验证程序¶
JSSP Validator是一项功能,用于验证请求参数值是否与脚本开发模式中的指定条件匹配。验证的结果是,如果它们不匹配,则会生成一条错误消息并执行指定的函数。
规格书¶
前提条件¶
JSSP验证程序可用于以下函数 。
- js初始化时执行的init 函数
- 在IMART标签的action属性指定的Action 函数
- <imart type =“ form” />
- <imart type =”提交” />
- <imart type =”链接” />
验证的工作原理¶

JSSP验证程序根据以下流程执行该过程。
- 客户端发送了一个请求。
- JSSP验证程序根据验证配置文件中描述的规则来验证请求参数。
- 如果验证失败,则将错误消息添加到错误Object 。
- 如果错误Object 有错误消息,请执行错误处理程序函数 。如果没有错误消息,请执行由动作属性指定的Action 函数 ,例如初始化函数或形式。
验证规则¶
以下是验证规则的一览表 。 详细内容每个规则的详细信息, 详细内容 验证规则参考 。
关键 | 说明 |
---|---|
必填项 | 必填项 |
阿尔法 | 值按字母顺序 |
字母数字 | 值是字母和数字 |
数值的 | 值是一个数字 |
数字 | 整数部分和小数部分中的位数 |
小写 | 小写字母 |
大写 | 字母的大写字母 |
整数 | 是整数 |
小数 | 是实数 |
最小长度 | 最小字串长度 |
最大长度 | 最大字符串长度 |
分 | 最小人数 |
最大值 | 最大人数 |
范围 | 数值范围 |
电邮 | 电邮地址 |
网址 | 网址 |
等于 | 平等 |
包含 | 包括 |
isIn | 已包含 |
正则表达式 | 匹配正则表达式 |
档案 | 文件上传 |
mimeType | 文件的MIME类型匹配 |
编号 | 可用于ID和代码系统的字符 |
id2 | 可以在URL中使用的ID和可以在代码系统中使用的字符 |
userCd | 可用于用户代码的字符 |
日期 | 与账号上下文的日期和时间显示格式中包含的“日期(输入)”格式相同 |
时间 | 账号上下文的日期和时间显示格式中包含与“时间(输入)”相同的格式 |
日期时间 | 与账号上下文的日期和时间显示格式中包含的“日期(输入)” +“时间(输入)”相同的格式 |
编程方式¶
使用JSSP Validator的步骤如下。
- 在执行验证的函数中描述JSSP Validator注释。
- 创建一个验证配置文件并描述验证规则。
- 描述错误消息。
- 编写错误处理程序函数并执行错误处理。
JSSP验证器注释¶
在执行验证的函数中编写注释。在函数注释中编写@validate和@onerror批注。
/ **
*初始化过程
*
* ・ ・ ・
* @validate foo / bar_validation#初始化
* @onerror handleErrors
* /
机能 初始化(要求){
...
}
注解 | 说明 |
---|---|
@验证 | |
@onerror |
描述错误处理程序的函数名称。描述@validate批注时,请确保还描述@onerror批注。
错误处理函数的错误处理函数请参考。
|
验证设置文件¶
描述变量的声明,并在属性中描述要验证的参数名称。在参数名称的属性中描述要验证的验证规则的关键字。
caption属性是生成错误消息所必需的。请务必描述。有关错误消息,请参见错误消息 。
在下面的示例中,确认请求参数“ xxx_name”是必填项目 ,并且不超过50个字符。
变种 初始化 = {
'xxx_name': { //请求参数名称
字幕: “ CAP.Z.EXAMPLE.NAME”, //错误消息标题
必填项: true,
最大长度: 50
}
}
验证设置文件中可以描述多个设置。使变量名称在配置文件中唯一。
var init = {'xxx_name':{...}} var updateXXX = {'xxx_name':{...}} var deleteXXX = {'xxx_name':{...}}
错误讯息¶
如果请求验证失败,则生成错误消息。
下面描述一个示例,其中在验证配置文件中描述的标题属性的值为“ CAP.Z.EXAMPLE.NAME”,验证规则为“ required”和“ maxlength”。
变种 初始化 = {
'xxx_name': { //请求参数名称
字幕: “ CAP.Z.EXAMPLE.NAME”, //错误消息标题
必填项: true,
最大长度: 50
}
}
在此示例中,标题为“名称”。
帽。ž。范例。姓名=\ u540d \ u524d
在该示例中,由于在验证规则中设置了“ required”和“ maxlength”,因此请求验证失败时的错误消息如下。
名称为必填项。名称不得超过50个字符。
注解
- English-bar-message_zh.properties
- Japanese-bar-message_ja.properties
- 中文(简体)-bar-message_zh_CN.properties
- 没有语言ID-bar-message.properties的消息文件
错误Object ¶
错误Object 到验证失败已经存储的请求参数的错误消息。下图是一个示例。

错误Object 的属性包含请求参数名称的数组,该属性包含验证失败的规则的键,该值包含错误消息。已成功验证的规则的键不存在。没有验证失败的参数存储没有属性的Object 。
getMessages方法针对未能验证所有请求参数的规则返回错误消息数组。
错误处理函数¶
验证所有请求参数的结果,如果任何参数验证失败,请执行错误处理程序函数 。用@onerror注释中描述的名称描述该函数 。
错误处理程序函数的第一请求发送到的参数Object ,第二个参数误差Object 将被传递到。获取存储在错误Object 的错误消息并执行错误处理。
在下面的示例中,获取了请求参数值和错误消息,并将其转发到错误页。
错误Object 的错误Object 请参考。
/ **
*初始化过程
*
* ・ ・ ・
* @onerror handleErrors
* /
机能 初始化(要求){
...
}
/ **
*错误处理程序函数
*
* ・ ・ ・
* /
机能 handleErrors(要求, validationErrors) {
变种 参数 = {
富: 要求。富,
错误: validationErrors。getMessages()
};
向前(“ foo / bar_error”, 参数);
}
定制验证器¶
开发人员可以创建自己的验证规则。
注解
用JavaScript实现¶
/ **
*自定义验证器
*
* ・ ・ ・
* /
机能 验证(要求, 配置, paramName, 字幕) {
变种 价值 = 要求。getParameterValue(paramName);
如果 (条件) {
归还 {isValid: true};
} 别的 {
归还 {isValid: false, 讯息: “验证失败”};
}
}
以下Object 将传递给validate 函数的参数。
争论 | 型式 | 说明 |
---|---|---|
要求 | 请求Object | 请求Object |
配置 | Object ( 设置值的类型) | 验证设置文件中描述的设置值 |
paramName | 字符串类型 | 需要验证的参数名称 |
字幕 | 字符串类型 | 验证配置文件中描述的是设置值的caption属性设置值 |
请在validate 函数的返回值中返回以下结构的Object 。 如果验证成功,则将isValid属性设置为true,否则将设置为false。如果验证失败,请在message属性中设置一条错误消息。

用Java实现¶
创建jp.co.intra_mart.foundation.jssp.validation.Validator接口的实现类。
包装 富;
进口 jp.co.intra_mart.foundation.jssp.validation.InitParam;
进口 jp.co.intra_mart.foundation.jssp.validation.RequestInfo;
进口 jp.co.intra_mart.foundation.jssp.validation.ValidationResult;
进口 jp.co.intra_mart.foundation.jssp.validation.Validator;
进口 jp.co.intra_mart.system.javascript.Context;
进口 jp.co.intra_mart.system.javascript.Scriptable;
公开的 类 CustomValidator 实施 验证者 {
@Override
公开的 虚空 破坏() {
}
@Override
公开的 验证结果 验证(请求信息 资讯) {
最后的 弦乐 价值 = 资讯。getRequest()。getParameter(资讯。getParameterName());
如果 (条件) {
归还 验证结果。好啦();
} 别的 {
归还 验证结果。ng(“验证失败”);
}
}
@Override
公开的 虚空 初始化(初始化参数 参数, 语境 x, 可编写脚本 范围) {
}
}
有关参数和返回值的说明,请参阅API列表。
jssp-validation-config设置¶
<?xml版本=“ 1.0”编码=“ UTF-8”?> <jssp-validation-config xmlns = “ http:// intra-mart .co.jp / system / jssp-validation” xmlns:xsi = “ http ://www.w3.org/2001/XMLSchema-instance“ xsi:schemaLocation = ” http:// intra-mart .co.jp / system / jssp-validation ../../schema/jssp-validation-config .xsd“ > <!-JavaScript设置示例- > <validator> <validator-name> js_example </ validator-name> <validator-script> foo / custom_validator </ validator-script> </ validator> <! -Java配置示例- > <validator> <validator-name> java_example </ validator-name> <validator-class> foo.CustomValidator </ validator-class> </ validator> </ jssp-validation-config>