如何在Seam管理的bean上以編程方式解析JSF EL表達式?我曾嘗試以下,但它不工作:在Seam管理的bean上以編程方式解析EL表達式
private String resolveExpression(String expression){
if(expression == null)
{
return null;
}
javax.faces.context.FacesContext facesCtx = FacesContext.getCurrentInstance();
Application app = facesCtx.getApplication();
try
{
// Here we bind a value expression into the item,
// so it can dynamically change its language
ELContext elCtx = facesCtx.getELContext();
ExpressionFactory ef = app.getExpressionFactory();
ValueExpression ve = ef.createValueExpression(elCtx, expression, String.class);
return (String) ve.getValue(elCtx);
}
catch (ELException ex) {
}
return expression;
}
在我的應用我有一顆豆名爲User
,在煤層的會話範圍坐着,這個bean有一個屬性name
。 EL表達式爲#{usr.name}
,但此表達式在Facelet文件中正常工作時返回空。
你試過#{} usr.username? – flash
抱歉'name'不是'用戶名':D – Barcelona
也許你不應該在這裏消除'ELException'。嘗試記錄該異常,也許這給了你一些提示。 – flash