Java 如何在play框架模板中读取注释值?
我想使用CRUD模块模板中注释的值来利用HTML5函数 e、 g @范围(最小值=0,最大值=10) 公共整数大小 CRUD模块使用views/tags/CRUD/numberField.html显示数字字段:Java 如何在play框架模板中读取注释值?,java,playframework,Java,Playframework,我想使用CRUD模块模板中注释的值来利用HTML5函数 e、 g @范围(最小值=0,最大值=10) 公共整数大小 CRUD模块使用views/tags/CRUD/numberField.html显示数字字段: #{field 'object.' + _name} <label for="${field.id}"> &{_name} </label> <input id="${field.id}" type="text
#{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}
#{field'object.+_name}
&{{u name}
#{ifError field.name}
${field.error}
#{/ifError}
#{/field}
如何从注释中读取最小/最大值,然后在注释中输出为min=“0”max=“0”?您必须为此编写一个注释。因为这都是Java,所以可以使用反射来查询对象中的注释。如果您想将其专用于验证,您可以让模块为您执行此操作。在游戏中包含的验证示例中!,示例#7包含一些Jquery代码,用于读取类中的注释并将其用于Javascript验证。我相信这会对您有所帮助。您可以通过向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 …
然后该值在numberField.html
标记中以\u min
的形式提供