1. 程式人生 > >SpringMVC結合freemarker模板回顯資料的實現

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實現資料回顯的栗子了。