2012-07-23 92 views
0

我XHTML格式的代碼:我怎麼能得到JSF的前綴爲JSF HTML元素2.0

  <h:inputText id="name" value="#{customer.name}" 
       size="20" required="true" 
       label="Name" onblur="alert(this.value())" > 
      </h:inputText> 

現在,當我查看源代碼,它呈現給

<input id="j_idt22:name" name="j_idt22:name" onblur="alert(this.value())" size="20" type="text"> 

如果我們檢查他們的是一個前綴附加到它:j_idt22:,
我想在我的bean形式獲得這個前綴名稱。

我該怎麼做到這一點?

+0

如果你想避免這個隨機生成的名稱,你可以這樣做 – 2012-07-23 09:42:55

+0

謝謝......我該怎麼做?這個前綴的目的是什麼?你能給同樣的鏈接嗎?但仍然如果我想獲得前綴,任何想法如何可以做 – 2012-07-23 09:44:26

+1

設置prependId爲false爲' 2012-07-23 09:45:22

回答

3

爲了避免JSF組件動態生成的ID,您就可以使用

<h:form prependId="false"> 

你可以直接得到的值綁定您的託管bean

如果要檢索的名稱列表,那麼你可以使用request.getParameterMap()

+0

謝謝,絕對有幫助..但不回答我如何可以在託管bean中獲得前綴的問題 – 2012-07-23 09:57:09

+0

我不認爲有人會回答這個帖子,你的答案不完全是我想要的..但​​是,這有助於..將其標記爲答案..感謝您的幫助 – 2012-07-25 06:32:40

0

我想你沒有提及你的表單,如果提到表單名稱,它將生成ID爲formname:idname。

3

您看到的ID是組件的客戶端ID。如果您綁定了bean中的組件,則component.getClientId(<FacesContext>)將返回該元素的HTML標識(j_idt22:name)

1

你可以爲表單標籤設置一個id以避免自動生成的id。這樣你就可以知道前綴,因爲你自己設置了它。

+0

但這樣我就無法得到一般,基本上我想要的是創建一個通用託管bean所有表單組件,我可以擴展他們的後添加特殊功能,每個表單上的id的硬編碼將不會有多大幫助 – 2012-07-23 10:24:30