【问题标题】:JSF HTML page not displaying proper tag valuesJSF HTML 页面未显示正确的标记值
【发布时间】:2015-06-22 13:27:50
【问题描述】:

所以我使用 JSF 开发了一个 Web 应用程序,并为我的按钮/文本输入字段设置了名称和 ID。但是当我打开网页并执行检查元素时,我看不到每个字段的相应名称/ID。相反,我看到的是:j_idtx:j_idty,其中 x 和 y 是一些数字,例如:j_idt2:j_idt5。

在使用 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>

那么如何确保我的姓名和身份证件正确显示?

谢谢

【问题讨论】:

  • 您必须在表单“prepand=false”上添加属性。如果您有 id="formID" 的表单,则表单中的元素将具有 preand 表单的 ID,后跟冒号,例如子元素将具有 id="formID:childID"。一些 jsf 组件生成它们自己的代码,它们也生成 id。更好地坚持上课
  • 好的,名字呢?我主要是按名称而不是ID。添加 prepand="false" 不会更改名称。
  • 我建议你阅读这篇文章stackoverflow.com/questions/15893876/…
  • @BalusC,这是一个糟糕的词选择,没关系。我以为这是个问题。那么我怎样才能明确地给按钮起一个名字呢?
  • 猜猜我会使用客户端 ID。

标签: html jsf jsf-2 jsf-2.2


【解决方案1】:

不指定id时,会自动生成。您确实指定了一个 id,但是您没有为带有这些元素的表单关闭子元素。因此 jsf 自动生成的表单 id 将在最终版本中添加到您的 ID 中,例如 j_idt2:myid。

给表单添加一个id,如果你想找到带有id的元素,你必须这样做:“form:myid”

像这样:

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

输入的 id 将是:myform:input

【讨论】:

  • SO 中一定有这样的副本。请查找并标记问题
  • @Kukeltje 不知道我能做到。
  • 我认为关于 jsf/primefaces 的问题中有 30% 是重复的......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-22
相关资源
最近更新 更多