无法在春季会话中显示jsp上的列表

时间:2015-09-27 18:13:52

标签: java jsp spring-mvc

在我的应用程序中,我想在应用程序启动时存储列表数据,我想在需要时在jsp页面上获取它。我已将bean定义如下

<beans:bean id="systemService" class="com.mycompany.System" init-method="setMasterList" lazy-init="false"/>

component如下

@Controller
@Component("system")
@Scope(WebApplicationContext.SCOPE_GLOBAL_SESSION)
public class System
{
    public Map<Integer, String> masterList = new HashMap<Integer, String>();

    public Map<Integer, String> populateMasterList()
    {
        masterList.put(1, "About US");
        masterList.put(2, "About US");
        return masterList;
    }

    public Map<Integer, String> getMasterList()
    {
        return masterList;
    }

    public void setMasterList()
    {
        this.masterList = populateMasterList();
    }
}

我正在尝试在jsp上检索此主列表。我试图在jsp上访问它,如下所示

Master : ${system.masterList}

但是在jsp上它显示为空白。我也尝试使用Scope @Scope(WebApplicationContext.SCOPE_SESSION)。但是没能成功。

1 个答案:

答案 0 :(得分:0)

试试这个:

<beans:bean id="systemService" class="com.mycompany.System" init-method="populateMasterList" lazy-init="false" scope="application"/>

并从System类中删除所有注释。

public class System
{
   ...
}

在jsp中,使用

${systemService.masterList[1]}

在视图解析器中,添加

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    ...
    ...
    <property name="exposeContextBeansAsAttributes" value="true" />
</bean>