拿典型的petstore举例子,首先看一下WEB-INF的目录结构:
WEB-INFO
├── common
│ ├── pipeline-exception.xml
│ ├── pipeline.xml
│ ├── resources.xml
│ ├── template-data.xml
│ ├── uris.xml
│ ├── webx-component-and-root.xml
│ └── webx-component.xml
├── home
│ └── form.xml
├── store
│ └── form.xml
├── user
│ └── form.xml
├── webx-home.xml
├── web.xml
├── webx-store.xml
├── webx-user.xml
└── webx.xml
一、注册服务
1. webx.xml
webx.xml中,关于服务的配置如下:
可以看出,这里并没有关于表单的配置,但是webx.xml中有:
这个表示引入common/webx-component.xml
中的配置,那我们接着看。
2.webx-component.xml
这里的
是重点。
总结,要注册form-tool服务。该服务要配置在webx.xml文件中,或者其他文件中,但是要使用import引进来。
二、应用和定义form.xml
1.webx-user.xml
在webx-user.xml
文件中引入form.xml
文件。 这里的form.xml文件位与user目录下面。具体的目录结构可以看文章开头。
2. form.xml
提交的数据已过期
必须填写 ${displayName}
${displayName} 必须由字母、数字、下划线构成
${displayName} 最少必须由${minLength}个字组成,最多不能超过${maxLength}个字
这里定义一个group
,名字为register
。其中规定了registerError
的验证逻辑。
总结,需要有一个form.xml文件,并且在文件中写好针对某一个group里面的个各个属性的验证逻辑。
三、VM页面 看一下,user文件夹的目录情况
user
├── css
│ └── petstore-user.css
└── templates
├── control
│ └── login.vm
├── layout
│ └── default.vm
└── screen
└── register.vm
这里的user对应于webx-user.xml的这个user,因为webx-user.xml
定义了装载该模块
1. register.vm
#macro (registerMessage $field)
#if (!$field.valid) $field.message #end
#end
2.RegisterAction类
@Autowired
private FormService formService;
public void execute(TurbineRunData rundata, Context context){
Form form = formService.getForm();
if (form.isValid()) {
//doSth
}
}
参考资料: