我有一个HashMap<Long, ClientProperties>
,我在启动时把它放在ServletContext上。
//During application-startup:
//getProperties() returns HashMap<Long, ClientProperties>
context.setAttribute("clientProps", clientManager.getProperties());
ClientProperties是一个POJO,我需要在我的jsp中访问5个属性。 基本上我需要获取正确的POJO(通过HashMap-key)并在我的jsp中访问它的属性。
更多特定(例如用途),其中一个POJO属性是clientLogo
在我的jsp我现在有:
<img src="<c:url value='/images/logo.png'/>" alt="Logo">
我需要用POJO的clientLogo-property替换logo-file的路径。
要使用的HashMap-key应该从存储在会话中的User-object中提取。它可以像这样检索:${sessionScope['user'].clientId}
有什么想法吗? 如果重要的话,使用struts2和spring btw。
答案 0 :(得分:0)
要从servlet上下文获取属性foo
,您使用与从会话中获取属性相同的语法,但用applicationScope替换sessionScope。
但是你有很多嵌套的东西,你应该定义变量:
<c:set var="map" value="${applicationScope['clientProps']}"/>
<c:set var="mapKey" value="${sessionScope['user'].clientId}"/>
<c:set var="pojo" value="${map[mapKey]}"/>
<c:set var="clientLogo" value="${pojo.clientLogo}"/>
<c:url value="${clientLogo}"/>
请注意,这通常是您在视图中不应该做的艰苦工作。使用Java在控制器中实现图像路径的检索,并使其可用作操作/表单的属性,并直接从视图中访问它。