2015-06-22 88 views
-1

因此,我開發了一個使用JSF的Web應用程序,併爲我的按鈕/文本輸入字段提供了名稱和ID。但是,當我打開網頁並執行檢查元素時,我沒有看到每個字段的相應名稱/ ID。相反,我看到這個:j_idtx:j_idty,其中x和y是一些數字,例如:j_idt2:j_idt5。JSF HTML頁面沒有顯示正確的標記值

當使用JSP而不是JSF進行開發時,我看不到這個問題。

下面是設置一個按鈕,一個特定名稱的樣本代碼:

<ui:composition template="WEB-INF/templates/BasicTemplate.xhtml"> 
    <ui:define name="content"> 
     <h:form> 
      <h:commandButton action="login_page" value="Login" name="loginButton"></h:commandButton> 
      <br></br> 
      <br></br> 
      <h:commandButton action="registration_page" value="Register" name="registrationButton"></h:commandButton> 
     </h:form> 
    </ui:define> 
</ui:composition> 

因此,如何能確保我的名稱和ID出現是否正確?

謝謝

+0

您必須在表單上添加屬性「prepand = false」。如果您的表單使用id =「formID」,則表單中的元素將預先準備好表單的ID,然後是collon,例如,子元素將具有id =「formID:childID」。某些jsf組件生成自己的代碼,並且它們也會生成id。更好地堅持類 – Chris

+0

好的名字怎麼樣?我主要是通過名稱而不是id。添加prepand =「false」不會更改名稱。 – Viratan

+0

我建議你閱讀這篇文章http://stackoverflow.com/questions/15893876/how-to-specify-name-attribute-in-hinputtext – Chris

回答

0

當您不指定id時,它會自動生成。你確實指定了一個ID,但是你並沒有從這些元素中刪除這些元素。因此,由jsf生成的表單ID的自動生成將會添加到最終版本的ID中,例如j_idt2:myid。

添加一個id的形式,如果你想找到它的ID的元素,你需要做的:「形式:身份識別碼」

像這樣:

<h:form id="myform"> 
    <h:inputText id="input"/> 
</h:form> 

輸入的ID將是:myform:input

+0

在SO中必須有一個像這樣的重複。請查找並標記問題 – Kukeltje

+0

@Kukeltje不知道我可以做到這一點。 – Ced

+0

我認爲有關jsf/primefaces的問題中有30%是重複的... – Kukeltje