我们有一个辅助功能要求,可以为屏幕阅读器提供额外的“屏幕外”文本。所以我们想要最终渲染类似的东西(为了清晰起见省略了属性)
<a>Edit Details<span class="hiddenOffScreen"> for John Smith</span></a>
问题是标准的jsf1.2 <h:commandLink>
标记不尊重escape
属性。我试过像<h:commandLink escape="false" value="#{linkText}"/>
这样的东西,其中linkText评估了上面显示的a标签的内容,但是这实际上呈现了span标签(即转义&lt;和&gt;)
如何最好地满足此要求?我当然可以稍后使用JQuery轻松添加范围,但是,对于我自己的教育,我想尝试使用自定义渲染器 - 但不确定如何使用添加“onClick”事件的现有默认渲染器处理程序和相关的JavaScript。在搜索自定义commandLink渲染器时,我的google-foo似乎失败了。
请记住,这是JSF 1.2,我们不能使用任何第三方标记库,因为我们正在使用一个非常旧版本的WebSphere Portal Server。
答案 0 :(得分:2)
您可以在<h:commandLink>
标记内嵌套内容,包括其他标记和/或隐式文字,而不是在其value
属性中指定文字,以实现您的功能:
<h:commandLink ...>
<h:outputText .../>
<span class="hidden"></span>
#{bean.someText}
</h:commandLink>
这将完全呈现您想要的内容。
答案 1 :(得分:0)
使用&lt;或者&gt;写&lt; &GT;