SpringMVC結合freemarker模板回顯資料的實現
回顯資料經常可以在修改功能中看到,而SpringMVC結合freemarker會和其他的回顯做法有點不同,看栗子:
Controller部分是這樣滴:
@RequestMapping(value = "/update", method = RequestMethod.GET)
public ModelAndView update(@RequestParam("id") long userId, @ModelAttribute("a") ModelMap a) {
return new ModelAndView("/update", "a", userService.find(userId));
}
沒錯,Controller中方法的返回值型別是ModelAndView這個了,返回的時候也要藉助它。ok,這是Controller部分。
根據上面那樣寫的話,那麼ftl頁面應該是這樣滴:
<#ftl strip_whitespace=true>
<#import "/spring.ftl" as spring />
<!DOCTYPE html>
<html>
<head>
<title>修改user</title>
</head>
<body>
<@spring.bind "a"/>
<form action="/updateSave" name="at" method="POST">
<@spring.formHiddenInput "a.userId" />
name:<@spring.formInput "a.name" /><br/><br/>
age:<@spring.formInput "a.age" /><br/><br/>
sex:<@spring.formInput "a.sex" /><br/><br/>
<button type="submit">確定</button>
<button type="reset">重置</button>
</form>
</body>
</html>
這是一個完整freemarker模板的ftl文件,就像上面那樣,SpringMVC結合freemarker實現資料回顯,需要藉助Spring提供的標籤,
怎麼使用呢,。。。那肯定是要先匯入spring的標籤庫嘛
那麼問題來了,怎麼匯入spring的標籤庫呢,很簡單,就像這樣:
<#ftl strip_whitespace=true>
<#import "/spring.ftl" as spring />
好了,標籤庫是匯入進來了,要實現資料回顯該怎麼操作?
很簡單,先繫結!對,就是繫結。Look下面:
<@spring.bind "a"/>
哎,等等,這句中的那個"a"是從哪來的?對喲,那個"a"是從哪來的,憑空寫的嗎?。。。
當然不是憑空寫的,看到上上上面的Controller部分,方法返回的時候是不是有句return new ModelAndView("/update", "a", userService.find(id));
就是這麼個情況。接下來就是展現的時候了,這麼展示呢?又Look下面:
<form action="/updateSave" name="at" method="POST">
<@spring.formHiddenInput "a.userId" />
name:<@spring.formInput "a.name" /><br/><br/>
age:<@spring.formInput "a.age" /><br/><br/>
sex:<@spring.formInput "a.sex" /><br/><br/>
<button type="submit">確定</button>
<button type="reset">重置</button>
</form>
<@spring.formHiddenInput>這個標籤是隱藏域
<@spring.formInput>這個標籤就是文字框
更多標籤資訊請參照spring.ftl這個檔案中的說明(不知道在哪個包下可以直接google)。
好了,完了。
以上就是SpringMVC+Freemarker實現資料回顯的栗子了。