我想在CRUD模块模板中使用注释中的值来使用HTML5函数。
e.g。
@Range(min = 0,max = 10)
public int size;
CRUD模块使用views / tags / crud / numberField.html显示数字字段:
#{field 'object.' + _name}
<label for="${field.id}">
&{_name}
</label>
<input id="${field.id}" type="text" name="${field.name}" value="${params[field.name]?.escape()?.raw() ?: field.error?.message == 'validation.required' ? '' : _value?.escape()?.raw()}" size="5" />
#{ifError field.name}
<span class="error">${field.error}</span>
#{/ifError}
#{/field}
如何从注释读取最小/最大值,然后在&lt; input&gt;中输出为min =“0”max =“0” ?
答案 0 :(得分:2)
您可以通过向CRUD模块的CRUD.ObjectType.ObjectField
内部类添加方法来读取注释值,例如:类似的东西:
public String getRangeMin() {
if (!property.field.isAnnotationPresent(Range.class)) {
return null;
}
return property.field.getAnnotation(Range.class).min();
}
然后在crud/views/tags/crud/form.html
中,您可以在#{if field.type == 'number'}
内的新标记参数中使用此功能(请注意field
此处为CRUD.ObjectType.ObjectField
:
#{crud.numberField min:field.min …
然后,_min
标记内的值numberField.html
可用。
答案 1 :(得分:1)
你必须为此写一个FastTag。由于这是所有Java,因此您可以使用反射来查询对象中的注释。如果您想独家使用它进行验证,可以让html5validation模块为您执行此操作。
答案 2 :(得分:0)
,示例#7包含一些Jquery代码,用于读取类中的注释并将其用于Javascript验证。我相信这应该对你有所帮助。