2012-03-12 58 views
1

在我的網頁中假設有10個字段,其中4個字段是強制性的。如何啓用/禁用通過UI在struts2網頁中的必填字段

在運行時,任何人都可以啓用一些非強制性的字段。當下一次重新啓動應用程序時,它應該顯示該字段爲強制性的,並且沒有新增強制字段的業務邏輯

(我想通過UI強制另外2個字段,並且沒有業務邏輯僅爲新添加的必填字段顯示,請填寫此字段。)

+1

禁用提交按鈕,直到所有字段都被填充並啓用它,一旦填充,您可以使用javascript來完成。 – 2012-03-12 05:03:46

+1

@VIVEK:不確定你的意思是將更多的字段設置爲必填項?你想讓它們在運行時被需要嗎? – 2012-03-12 05:47:38

+0

否@MohanaRaoSV,我的問題是我想通過UI強制實現兩個字段,不需要去編碼部分,我們必須從UI做所有事情。任何想法他們可以分享! – VIVEK 2012-03-12 05:47:48

回答

1

每個操作都與一個包關聯。因此,package_name和action_name唯一標識您的操作,並將爲required_attribute表製作一個好鑰匙。在數據庫中,您將存儲PK和setter屬性(setters的字符串名稱)以及用戶標識。

您將創建一個將訪問數據庫的RequiredFieldService。

RequiredFieldService接口可能會包含:

public void setRequiredActionFieldsPerUser(String namespace, String action, Class<T> actionClass, List<String> requiredSetters, int userId); //The class is passed in to make it easier to use reflection (or preferably Apache bean utils to verify that the setters actually exist) 

public List<String> getRequiredActionFieldsPerUser(String namespace, String action, int userId);//if you provide a Class in the parameters you can test if the interface has changed and throw an exception, or simply remove those attributes from the db 

我會使用上述服務在我的validate方法,因爲我覺得我想自定義錯誤消息,但如果你只是想產生一個標準錯誤的攔截器可以工作,它將設置字段錯誤消息(儘管首先使驗證方法工作會更容易)。


上述內容涉及驗證,但不涉及需要管理界面的UI部分。你會想要一些能夠顯示你的項目中的所有動作的東西(類似於配置瀏覽器插件)在選擇一個動作時它會顯示所有你可以用一組複選框選擇的公共設置器,需要。有了這樣一套選擇和上述界面的實現,你應該很好去。

相關問題