2017-07-31 95 views
0

我無法正確傳遞參數。我知道錯誤出現在HTML中。Spring + thymeleaf無法正確傳遞參數

錯誤出現在代碼$ {vo.news.likeCount},$ {vo.news.link}等等。

但我不知道如何正確使用它。謝謝。

這是一個thymeleaf模板:

<div class="posts"> 
        <div th:each="vo : ${vos}"> 
        <div class="post"> 
         <div class="votebar"> 
          <button class="click-like up" aria-pressed="false" title="贊同"><i class="vote-arrow"></i> 
           <span class="count"> 
            <span th:text="${vo.news.likeCount}"></span> 
           </span> 
          </button> 
          <button class="click-dislike down" aria-pressed="true" title="反對"><i class="vote-arrow"></i> 
          </button> 
         </div> 
         <div class="content" data-url="${vo.news.link}"> 
          <div > 
           <img class="content-img" src="${vo.news.image}" alt=""> 
          </div> 

這是類的ViewObject:

public class ViewObject { 
private Map<String, Object> obj = new HashMap<String, Object>(); 
public void set(String key, Object value) { 
    obj.put(key, value); 
} 

public Object get(String key) { 
    return obj.get(key); 
} 

這是另一種:

@RequestMapping(path = {"/", "/index"}, method = {RequestMethod.GET,RequestMethod.POST}) 
public String index(Model model){ 
    List<News> newsList = newsService.getLatesNews(0, 0,10); 

    List<ViewObject> vos = new ArrayList<>(); 
    for(News news :newsList){ 
     ViewObject vo = new ViewObject(); 
     vo.set("news",news); 
     vo.set("user", userService.getUser(news.getUserId())); 
     vos.add(vo); 
    } 

    model.addAttribute("vos", vos); 
    return "home.html"; 
} 

回答

0

表達vo.news.likeCount裝置vo.getNews().getLikeCount()ViewObject沒有方法getNews()。你需要將你的表達式構造成與java中相同的方式。

<span th:text="${vo.get('news').likeCount}"></span> 

<img class="content-img" src="${vo.get('news').image}" alt=""> 

<div class="content" data-url="${vo.get('news').link}"> 

等等

+0

非常感謝,它的工作!如果你是自由這個時候,你可以給看看我的另一個問題,發佈recently.About空,請幫me.they是同樣的節目。 – user8394289