我有一個jsp子視圖頁,我已經傳遞了一個參數,然後我想將該參數傳遞給存儲在會話bean中的地圖的get()方法。JSF訪問支持地圖對象
例:
<h:panelGrid id="panelGrid1" rendered="#{MySessionBean[param.id].showPanelGrid1}">
...
</h:panelGrid>
在上面的例子MySessionBean實現Map接口,我有這將創建一個對象,並把它放在地圖上如果不存在該鍵[PARAMS我自己的自定義get方法。 ID]。當我在調試模式下運行代碼時,MySessionBean的get方法永遠不會被調用,並且我的面板總是呈現。我沒有正確傳遞參數?或者訪問傳遞給子視圖correclty的參數?
這裏是我傳遞的參數此子視圖:
<f:subview id="subview1">
<jsp:include page="/MyTemplatePage.jsp">
<jsp:param name="id" value="staticUniqueId1"/>
</jsp:include>
</f:subview>
我試圖做到這一點,所以我可以有這個模板子視圖多次在一個頁面,讓每個實例贏得的原因沒有相同的支持bean對象。因此,在會話中使用映射並向其傳遞一個id以訪問每個實例的支持bean。
此外,我限制JSF 1.2,JSTL 1.1,JBoss 4.0.4。所以我不能使用使用RichFaces或JSF答案2.
編輯:11年11月22日11:23
我用一個靜態的字符串值取代了[param.id。
<h:panelGrid id="panelGrid1" rendered="#{MySessionBean.MY_TEMP_VAL.showPanelGrid1}">
...
</h:panelGrid>
而且一切正常。它觸發了我的map get方法並訪問了會話bean和所有內容。所以它顯然不喜歡整個使用[params.id]傳遞給地圖對象。不知道從這裏做什麼。
我geeting的例外「org.apache.jasper.JasperException:jsp.error.beans.property.conversion」。我認爲它不喜歡標籤屬性myBean =「#{myBeanInstance1}」中的EL。我試圖在自定義JSF標籤上找到其他示例,並且當它們在tld文件中描述標籤時,它們都希望將標籤分配給標籤。但我只想使用jspx文件來描述內容。 – Nikordaris