2017-07-31 185 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

相关问题