2012-02-26 25 views
0

我已經編寫了自己的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的直接引用。

感謝

回答

相關問題