我已經編寫了自己的url路由機制,它允許將URL映射到ModelAndViews和ModelAndViews返回到URL(https://github.com/knyttl/Maite/wiki/Maite-路由)。Freemarker自定義方法 - 獲取ModelAndView而不明確地傳遞它
我想創建一個Freemarker方法,它將修改當前的ModelAndView並調用相反的路由過程。
所以在模板我想實現這樣的:
${link("view", [id:10, page:1])}
然後宏將被定義是這樣的:
@Autowired
HandlerAdapter ha;
public TemplateModel exec(List args) throws TemplateModelException {
ModelAndView current = __getItSomehowFromTheTemplate();
if (current.getViewName() != (String) args.get(0)) {
// if the view is the same, we just modify the model
...
current.set...
} else {
// the view is different, we create a new ModelAndView
current = new ModelAndView();
}
// reverse routing process
return new SimpleScalar(ha.constructUrl(current));
}
我不知道我是否有ModelAndView的傳遞給方法,或者我可以讓Freemarker以某種方式自動傳遞它,就像我的魔法一樣__getItSomehowFromTheTemplate();
如果我必須自動通過它,我該怎麼做?我沒有找到任何對當前ModelAndView的直接引用。
感謝
完美,謝謝! – 2012-02-26 17:55:07