2011-04-09 84 views
2

我想使用CRUD模塊模板中的註釋值來利用HTML5函數。如何讀取播放框架模板中的註釋值?

例如

@range(分鐘= 0,最大值= 10)

公衆詮釋大小;

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} 

我怎樣才能讀min,從註釋然後輸出爲min = 「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'}內(注意,fieldCRUD.ObjectType.ObjectField這裏:

#{crud.numberField min:field.min … 

值則可以作爲_minnumberField.html標籤。

1

你必須爲此寫一個FastTag。由於這是所有的Java,你可以使用反射來查詢你的對象在那裏的註釋。如果您想獨家使用它進行驗證,您可以讓html5validation模塊爲您做到這一點。

0

在Play!中包含的Validation示例中,Sample#7包含一些讀取類中註釋並將其用於Javascript驗證的Jquery代碼。我相信這應該對你有所幫助。