牛客社区项目笔记(四)开发社区首页

index.html

牛客社区项目笔记(四)开发社区首页

 在href引用文件时,记得要下载库,不然显示不出来,中午研究了一中午,页面和老师的不一样,检查出来才有。

		<!-- 帖子列表 -->
			<ul class="list-unstyled">
				<li class="media pb-3 pt-3 mb-3 border-bottom" th:each="map:${discussPosts}">
					<a href="site/profile.html">
						<img th:src="${map.user.headerUrl}" class="mr-4 rounded-circle" alt="用户头像" style="width:50px;height:50px;">
					</a>
					<div class="media-body">
						<h6 class="mt-0 mb-3">
							<a href="#" th:utext="${map.post.title}">备战春招,面试刷题跟他复习,一个月全搞定!</a>
							<span class="badge badge-secondary bg-primary" th:if="${map.post.type==1}">置顶</span>
							<span class="badge badge-secondary bg-danger" th:if="${map.post.status==1}">精华</span>
						</h6>
						<div class="text-muted font-size-12">
							<u class="mr-3" th:utext="${map.user.username}">寒江雪</u> 发布于 <b th:text="${#dates.format(map.post.createTime,'yyyy-MM-dd HH:mm:ss')}">2019-04-15 15:32:18</b>
							<ul class="d-inline float-right">
								<li class="d-inline ml-2">赞 11</li>
								<li class="d-inline ml-2">|</li>
								<li class="d-inline ml-2">回帖 7</li>
							</ul>
						</div>
					</div>
				</li>
			</ul>

第二行中,th:each="map:${discussPosts} 是指 遍历discussPosts的值,遍历出来的变量为map。

而后面的map.***.*** 是指map的查询对应变量的方法

Thymeleaf对于变量的操作主要有$\*\#三种方式:

  • 变量表达式: ${...},是获取容器上下文变量的值.
  • 选择变量表达式: *{...},获取指定的对象中的变量值。如果是单独的对象,则等价于${}。
  • 消息表达式: #{...}表达式与th:text一起使用,加载数据源中的消息,用于国际化
  • 链接网址表达式: @{...},获取网址链接

HomeController

@Controller
public class HomeController {

    @Autowired
    private DiscussPostService discussPostService;

    @Autowired
    private UserService userService;

    @RequestMapping(path = "/index", method = RequestMethod.GET)
    public String getIndexPage(Model model, Page page) {
        // 方法调用之前,SpringMVC会自动实例化Model和Page,并将Page注入Model。
        // 所以,在thymeleaf中可以直接访问Page数据中的对象
        page.setRows(discussPostService.findDiscussPostRows(0));
        page.setPath("/index");

        List<DiscussPost> list = discussPostService.findDiscussPosts(0, 0, 10);
        List<Map<String, Object>> discussPosts = new ArrayList<>();
        if(list != null){
            for(DiscussPost post : list) {
                Map<String, Object> map = new HashMap<>();
                map.put("post",post);
                User user = userService.findUserById(post.getUserId());
                map.put("user",user);
                discussPosts.add(map);
            }
        }
        model.addAttribute("discussPosts",discussPosts);
        return "/index";
    }
}

上一篇:R语言文本挖掘NASA数据网络分析,tf-idf和主题建模


下一篇:Jmeter之post上传文件(jmeter接口测试请求参数上传文件)