1
我得到了一個簡單的設置(和一個大問題):一個JSP頁面,包含en空面板網格項容器和一個綁定到一個bean。爲什麼動態創建的JSF EL值表達式未解析?
<h:panelGrid binding="#{ bean.container }" id="container" />
當bean的getter被調用時,容器被填充了一個隨機數的列,裏面有一個命令鏈接。到現在爲止還挺好。容器中充滿了適當數量的元素,並且通過在鏈接上使用ActionListener,我可以獲得所有的點擊事件。
這裏有棘手的部分:我想通過不同的風格類標記'selected'或'pressed'列。隨着靜態設置,我會像一個表達式做到這一點:
<h:column styleClass="#{ bean.selectedColumn eq 'id' ? 'btnSelected' : 'btn' }">
<!-- command link and some blahblah -->
</h:column>
Bean包含一個簡單的getter getSelectedColumn()
,返回的ID。直向前,所以這個作品完美!
但是當我嘗試做同樣的豆內,
ELContext elContext = FacesContext.getCurrentInstance().getELContext();
String expression = "#{ bean.selectedColumn eq 'id' ? 'btnSelected' : 'btn' }";
new ExpressionFactoryImpl().createValueExpression(elContext, expression, String.class);
column.setValueExpression("styleClass", valueExpression);
表達永遠不會得到解決。爲了使自己清楚:這兩列的命令鏈接和值表達式都生成了裏面的bean。這是原因嗎?
有誰能告訴我爲什麼?提前致謝!
好的,這是有道理的。我會嘗試別的。謝謝。 – 2011-06-21 17:17:34