在我的应用程序单击链接后,我想在页面加载后专注于页面的一部分。使用静态html,我们可以通过下面的代码部分来完成。jsf 2组件没有名称属性
<a href="#C4">Go to Chapter 4</a>
和第4章定义;
<h2><a name="C4">Chapter 4</a></h2>
<p>This chapter explains ba bla bla</p>
在jsf 2中我找不到甚至名称属性为了用于此目的。 任何帮助将不胜感激。
在我的应用程序单击链接后,我想在页面加载后专注于页面的一部分。使用静态html,我们可以通过下面的代码部分来完成。jsf 2组件没有名称属性
<a href="#C4">Go to Chapter 4</a>
和第4章定义;
<h2><a name="C4">Chapter 4</a></h2>
<p>This chapter explains ba bla bla</p>
在jsf 2中我找不到甚至名称属性为了用于此目的。 任何帮助将不胜感激。
在JSF中,根据jsf组件的'id'属性和表单的'id'属性的组合计算name属性。其原因可以通过BalusChere来解释。因此,如果您为JSF组件指定了一个ID,那么也会为其计算名称。
总而言之,开始HTML5使用名称属性<a>
标记已过时,建议使用最近的容器的id属性。所以不要依赖名称属性。
虽然你可以把注意力任何这些:
或者单纯强调一个容器目标页面上是这样的:
在HTML 4.01
<div id="top4">
<h2>This is a heading</h2>
<p>This is a paragraph</p>
</div>
在HTML 5
<article id="top4">
<h2>This is a heading</h2>
<p>This is a paragraph</p>
</article>
现在JSF,你这是怎么集中容器中的目标页面上:
当结果是不同的页面,但在相同的应用:
<h:link id="link1" value="link1" outcome="welcome" fragment="top4" />
,其中结果是welcome.xhtml这是相对于上下文根,并且“top4”是在目标页面被呈现时要被聚焦的容器的id。
当链接外部站点:
<h:outputLink id="link2" value="http://www.msn.com/#spotlight">link2</h:outputLink>
在同一个页面:
<h:link id="link3" value="link3" fragment="top4" />
这里没有指定的结果,所以结果将是相同的页面。
参见:
拉维,谢谢你的解决方案。你是对的我没有尝试h:链接。 – Mustafa 2012-07-17 10:23:02
您可以发布您的实际代码JSF? – 2012-07-15 17:20:48