在动态生成的h:commandLink中使用特殊字符和格式的最佳方法是什么?
我将等式(例如A =π* r 2 )渲染为h:commandLink项目列表,以便可以单独点击等式中的每个符号:
JSF:
<ui:repeat value="#{eqBean.eqSymbolDisplays}" var="eqSym">
<h:commandLink value="#{eqSym.text}" styleClass="#{eqSym.styleClass}" action="#{eqBean.eqSymbolClick(eqSym)}" />
</ui:repeat>
豆:
public String getText(){
// Return the text for a given symbol
}
问题是当符号需要特殊字符,特殊数学符号和/或需要是超级脚本或子脚本时,getText方法应该做什么?
以下是一些具体问题:
(1)如何在CommandLink中使用希腊字母π符号?如果我返回π
那么这就是显示的内容,而不是希腊符号
(2)在CommandLink中执行上标的最佳方法是什么?我可以使用CSS样式,但有些人说这是一个坏主意,特别是当上标暗示意义而不仅仅是表达时,就像它对一个权力提升的数字所做的那样。 见:
答案 0 :(得分:1)
答案显而易见:只需将h:commandLink
的value属性替换为具有h:outputText
的子escape="false"
元素:
JSF:
<ui:repeat value="#{eqBean.eqSymbolDisplays}" var="eqSym">
<h:commandLink styleClass="#{eqSym.styleClass}" action="#{eqBean.eqSymbolClick(eqSym)}" >
<h:outputText value="#{eqSym.htmlText}" escape="false"/>
</h:commandLink>
</ui:repeat>