2012-07-23 80 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