2011-01-07 59 views
8

當Faces Servlet將jsp編譯到工作目錄中的servlet時,它會生成id,例如j_id_jsp_1024919151_1 ...Java Server Faces JSF - 誰負責自動生成的ID?

何時id變化?我在同一臺機器上試了一下,清理工作目錄,還是一樣的。我開始另一個的Apache Tomcat在同一臺機器上,我得到了新的id ...

感謝名單斯特凡

回答

3

JSF生命週期中自動生成組件ID,當你不指定任何。如果您不想使用此功能,請分別設置所有組件的ID並設置ID爲<h:form>以避免出現此情況。

還設置自己的ID將幫助您更基於JavaScript的驗證,其中字段的值使用IDS

0

ID生成將是執行相關的。通過這個,我的意思是你使用的任何JSF實現都會有一個機制,用於根據對於唯一標識「足夠好」的變量生成ID。可能:類名稱,html元素名稱等...

您可能想檢查參考實現的source code

10

組件的id如果未設置,則通過實現爲generated

id發射到頁面的屬性值是client identifier。這是使用鏈接中定義的規則構建的,並且將包含父代NamingContainer ID以及可能的視圖名稱空間。

您可以閱讀更多關於使用JSF客戶端標識符here的信息。

+0

+1爲客戶端標識符!!!!! – mvg 2011-01-07 10:43:11