如何在Spring表单内的地图内填充地图?

时间:2018-05-29 14:16:19

标签: spring forms spring-mvc jsp

我有以下表格

public class myForm
{
private String code; (getter and setter)
private Map<String, Map<String, Object>> map(getter and setter)
}

我可以轻松填写​​代码属性,但我不知道如何继续填充地图,我甚至不知道它是否可能......

这是我的Spring表格

<form:form commandName="myForm" action="${PostUrl}" method="POST" >
  <input type="hidden" path="code" value="78967" />
  <input type="submit" value="Submit"/>
</form:form>

我将知道第一张地图的关键字,我将知道第二张地图的关键字,用户只会输入第二张地图的值。

为了尽可能清楚,这里是java,我希望用我的表单

Map<String, Map<String, Object>> map1 = new HashMap<String, map<String, 
Object>>();
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("DatePickerLabel", DatePickedByTheUser)
map1.put("DATEPICKER", map2)

1 个答案:

答案 0 :(得分:0)

因为有最好的选择,你可以在内部bean的帮助下完成。

public class myForm
{
private String code; (getter and setter)
private Map<String,InnerBeanObject> map(getter and setter)
}

如果你正在使用内部bean,你可以做一个setter注入来填充你的

Map<String, Object>

如果您使用的是xml bean配置

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

        <bean id="MyFormBean" class="Myform">
         <property name="code" >
         <property name="map">
            <map>
            <entry key="Key " value-ref="innerBean"></entry>
            </map>
        </property>
        </bean>
        <bean id="innerBean" class="InnerBean">
                    <property name="InnerBeanMap">
                    <map>
                      //get ur bean map key and value
                   </map>
        </bean>
      </beans>

如果你使用早期版本的spring.by注释 @bean

,你也知道java代码也有类似的方法。