如何在Spring中将map(master)值设置为bean?如何在jsp中显示?

时间:2014-02-04 07:05:39

标签: spring spring-mvc

在启动 tomcat服务器时,我已经在地图中存储了来自context-param的{​​{1}}值。 我希望商店地图值到 bean 并填充web.xml

先谢谢

2 个答案:

答案 0 :(得分:0)

实现这一目标的一种方法是在Spring配置中使用适当的属性config设置classA:

<bean id="classA" class="some.package.ClassA">
    <property name="propName" value="propValue"/>
    ...etc...
</bean>

然后,您可以使用exposeContextBeansAsAttributes属性在视图解析程序配置中公开它:

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="exposeContextBeansAsAttributes" value="true"/>
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>

然后在任何jsp中,您可以直接访问classA bean的属性:

<c:out value="${classA.propName}"/>

答案 1 :(得分:0)

根据您的评论,您似乎只需要在模型上公开地图。使用控制器中带@ModelAttribute注释的方法,而不是@RequestMapping

@Controller
public class YourController {

    @Autowired
    private ServletContext context;

    @ModelAttribute("staticValues")
    public Map<String, String> getStaticValues() {
        Map<String, String> map = new HashMap<String, String>();  
        map.put("test1",context.getInitParameter("test1")); 
        map.put("test2",context.getInitParameter("test2")); 
        map.put("test3",context.getInitParameter("test3"));     
        map.put("test4",context.getInitParameter("test4")); 
        return map;
    }

    ...
}

然后在jsp中你可以做到:

<c:out value="${staticValues.test1}" />
<c:out value="${staticValues.test2}" />
<c:out value="${staticValues.test3}" />
...etc...