请教一个JSF的标识符名称的问题

micro2000 2010-11-16 11:30:03
我在升级JBOSS(从 4.0.4 GA升级到5.1.0 GA)时遇到很多问题,一个个陷阱掉进去,再爬出来,搞得疲惫不堪。

现在又遇到一个问题,请教一下:

原先的页面中,比如:
(jsf是netbeans5.5.1中自带的,版本应该是1.2;richfaces是3.1.2 GA)

<h:form>
<h:inputHidden value="#{xxxxx.value}" id="value"></h:inputHidden>

在访问时会变转换成
<form id="_id0">
<input id="_id0:value" type="hidden" name="_id0:value" />

现在同样的代码会被自动换成:
(jsf是和JBOSS5.1.0 GA自带的一致的1.2.12;richfaces也和JBOSS5.1.0 GA自带的一致3.3.0;不一致就不能启动!)
<form id="j_id_jsp_1505607830_1">
<input id="j_id_jsp_1505607830_1:value" type="hidden" name="j_id_jsp_1505607830_1:value" />
好像还是随机的,每个页面和每个页面都不一样

可是页面中有直接访问的代码:document.all("_id0:value").value

现在方法之一就是:对于这种要访问标签的页面中的form都命名:<h:form id="_id0">

我想问的就是:有什么办法,不做页面的修改,让jsf仍然把<h:form>自动转换成<form id="_id0">

谢谢了!
...全文
116 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
micro2000 2010-11-22
  • 打赏
  • 举报
回复
我还是怀疑是jsf版本的问题。

感谢提供解决方案。

我最终采取笨办法,把所有代码中有_id0的页面都的form的都增加了id。
micro2000 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 abc130314 的回复:]
自定义一个组件
[/Quote]

非常感谢你的回复,通过自定义组件来设置默认名称;这样对于直接指定ID的<H:FORM ID="xxx">应该没有影响吧。

另外还有一个问题随便请教一下:

是不是richfaces在升级过程中把默认名称由原先的"_id0"改成类似随机生成的了?

我学习java+jsp编程不久,这个程序原先也不是我写的,我就担心是不是原先在什么地方调好了,被我整丢了。

谢谢!
abc130314 2010-11-17
  • 打赏
  • 举报
回复
自定义一个组件
public class _HtmlForm extends HtmlForm {
//用richfaces的啊,你自己找一下richfaces实现的HtmlForm ,然后继承它

public _HtmlForm () {
setId("_id0");
}
}
然后把它配置为默认的 HtmlForm

<component>
<component-type>javax.faces.HtmlForm</component-type>
<component-class>***._HtmlForm </component-class>
</component>
micro2000 2010-11-17
  • 打赏
  • 举报
回复
盼望各位来指点指点!
abc130314 2010-11-17
  • 打赏
  • 举报
回复
自定义组件不会影响设置的ID。

每个JSF都有自己的实现。所以规则可能不一样。
不过我用JSF的默认实现,ID 和你的第二个 类似 —— j_id_jsp_1310564876_1
_id0 很大可能是别人设置的。
micro2000 2010-11-16
  • 打赏
  • 举报
回复
我猜测,是否有什么配置文件,可以将JSF的from的自动命名的规则指定一下,但是找半天也没有找到。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧