2010-08-15 111 views
2

我使用eclipse來創建我的jsf項目。Eclipse自定義java編譯器

我創建了自己的組件,而我不希望其他程序員能夠使用JSF組件經常像h:inputtext

我怎樣才能做到這一點在日食,如果用戶添加特定的標籤像h:inputtext他會在頁面中看到錯誤,還會在嘗試運行時看到錯誤?

回答

3

這不是Java,也就是JavaServer Faces。

根據一般原則,您無法爲其他開發人員做到這一點。他們繞過它,如果需要。

可以做什麼,是有一個政策強制你的組件被用來代替股票JSF的,然後驗證,當建設。您的源代碼庫或您的構建服務器(首選)都應該對此進行測試並使操作失敗。這也將允許開發人員在本地調試時使用標準JSF(只要不共享)。

對於檢查JSF頁面,您可以利用它作爲XML文檔並使用XSLT來驗證所有標記和屬性。我的做法是檢查所有標籤上的名稱空間,如果在黑名單中找到,則觸發失敗。

+0

我非常贊成這種構建時間方法,儘管它可能會延遲驗證,直到將有問題的代碼簽入源代碼管理之後。 – McDowell 2010-08-15 15:25:42

+0

不要超過必要的限制。你有一天需要靈活性。 – 2010-08-15 17:15:46

+0

@Odelya,讓我們知道它是如何發展的。 – 2010-08-16 09:07:43

0

我想你可以寫一個Eclipse WTP validation plugin來驗證你的視圖文件。我會檢查http://java.sun.com/jsf/html命名空間的存在。

禁止這些標籤的簡單方法是讓它們在運行時炸燬。您可以通過將具體組件重新定義爲在實例化時拋出異常的組件來實現此目的。例如,要替換commandButton實施,您可以在faces-config.xml中定義組件類型javax.faces.HtmlCommandButton。如果你正在編寫自定義控件,你可能已經對這個領域有了一個公正的理解。這將需要添加一個庫到應用程序中。