Java 如何在play框架模板中读取注释值?

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

我想使用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" 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
的形式提供