在Velocity中使用模型图

时间:2014-12-10 04:22:45

标签: java spring-mvc velocity

我正在使用具有速度的Spring MVC。

我很好奇如何将地图键值从控制器发布到另一个站点。

@RequestMapping(value = "/test/postMap.*", method = RequestMethod.GET)
public String postMap(HttpServletRequest request, HttpServletResponse response,
          Model model) throws Exception {

  model.addAttribute(receiver, "solikang.com"); // not in real, just for example
  model.addAttribute(id, "solikang");
  model.addAttribute(pwd, "1234");
  return "postThis";
}

postThis.vm

<form id="oneItem" method="post" action=${receiver} >
  <input type="hidden" name="id" value="$!{id}" />
  <input type="hidden" name="pwd" value="$!{pwd}" />

</form>
<script type="text/javascript" language="JavaScript">
    document.getElementById("oneItem").submit();
</script>

在'postThis.vm'中,我修改了属性名称,如'id'和'pwd'。

这样可行,但如果还有其他参数,例如'name','email'。我必须修改postThis.vm来处理这些参数。

我认为,使用模型映射和for循环,无需修改。

所以,我想知道如何在速度上读取模型作为地图。

如果您有任何想法或经验,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您已经拥有的一个选项应该是将属性作为地图添加到模型中。所以在java中

map = new HashMap(); 
map.put("id", "solikang")
map.put("pwd", "1234")
map.put("email", "something@example.com");
model.addAttribute("data", map);

然后以速度

#foreach ($key in $data.keySet())
  <input type="hidden" name="$key" value="$data.get($key)">
#end

这样的事情应该有用。但我不确定这是“最好”的方式。