2014-04-11 33 views
1

我在標準HTML頁面(而不是JSP)上使用Spring在Java Web應用程序中使用Thymeleaf。我有幾個文本輸入的幾頁上的表格。我想在文本輸入中引用maxlength的一些變量。例如:在Java Web應用程序的HTML頁面上引用一個變量

電流:

<input id='name' type='text' maxlength='20' /> 

目標:

<input id='name' type='text' maxlength='${nameMaxlength}' /> 

我寧願把這些文件中的某處,我的Java代碼可以訪問,從而使客戶端和服務器端驗證可以引用相同的值。有沒有這種功能的最佳做法?

+0

我寧願不把一個變量到每一個會話,爲它附加一個模型對象,或將它與特定的語言環境相關聯(因爲它將是相同的)。有沒有一種方法可以讓百里香在每個網站上訪問一個文件? – user3525387

+1

你是否用春天的方言與Thymeleaf春天的方言? – geoand

回答

2

如果使用Thymeleaf與Spring話,你可以做到以下幾點:

package somepackage; 

public final class WebConsts { 

    public static final int MAX_LENGTH = 20; 

    private WebConsts(){} 
} 

<input id="name" type="text" th:maxlength="${T(somepackage.WebConsts).MAX_LENGTH}" /> 

的最大長度的表達式是一個標準的Spring EL表達式

+0

我喜歡這個解決方案,因爲它意味着您可以從JSR303 Bean Validation註釋(例如@Size(max = WebConsts.MAX_LENGTH))引用常量來提供服務器端驗證。 –

+0

@RobertHunt很高興聽到它! – geoand

0

Fuwesta我用了很多技巧來減少這種信息的重複。我的標準方法是將信息放入MessageSource。這很容易,你有一個很好的訪問通過#{constant.nameMaxLength}。 另一種方法是將這些信息始終放入模型中。

相關問題