您好我正在尝试将字符串值添加到值expresion。 在我的xhtml代码中,有时我常常做这样的事情:
<h:outputText value="#{myBean.value} %" />
这是一种简单的方法来添加&#39;%&#39;符号到outputText。
如何以编程方式完成它。
我可以添加值expresion:
final HtmlOutputText outputText = JSFUtils.createComponent(HtmlOutputText.COMPONENT_TYPE);
final ValueExpression exp = JSFUtils.valueExpresion("gasto.porcentajeTotal");
outputText.setValueExpresion("value", exp);
但我不知道如何添加&#39;%&#39;符号
谢谢。
答案 0 :(得分:1)
问题在于您的实用程序方法,它不允许指定#{
和}
,因为它已经“自动”包装它。如果您将责任移交给调用者,那么您应该能够完成任务。
下面从copied OmniFaces创建值表达式(Components
)的规范方法:
public static ValueExpression createValueExpression(String expression, Class<?> type) {
FacesContext context = FacesContext.getCurrentInstance();
return context.getApplication().getExpressionFactory().createValueExpression(
context.getELContext(), expression, type);
}
这可以用作:
ValueExpression ve = createValueExpresion("#{myBean.value} %", String.class);