用thymeleaf写一个个人博客详情页
时间: 2024-01-04 08:02:57 浏览: 131
好的,我可以帮你写一个简单的个人博客详情页。
首先,你需要创建一个包含文章标题、作者、发布时间、内容等信息的文章类,例如:
```java
public class Article {
private String title;
private String author;
private Date publishTime;
private String content;
// 省略 getter 和 setter 方法
}
```
然后,你需要创建一个控制器类来处理请求。在这个控制器类中,你需要定义一个方法来返回博客详情页的模板。例如:
```java
@Controller
public class ArticleController {
@GetMapping("/article/{id}")
public String getArticle(@PathVariable Long id, Model model) {
// 根据 id 查询文章信息
Article article = articleService.findById(id);
// 将文章信息添加到模型中
model.addAttribute("article", article);
// 返回模板名称
return "article";
}
}
```
在上面的代码中,`@GetMapping("/article/{id}")` 表示这个方法处理的是 `/article/{id}` 的 GET 请求。`@PathVariable` 注解表示将 URL 中的 `id` 参数绑定到方法的 `id` 参数上。
`Model` 类型的 `model` 参数用于向模板中添加数据,这里将查询到的文章信息添加到模型中,名称为 `article`。
最后,你需要创建一个 Thymeleaf 模板来展示文章详情页。在模板中,你可以使用 `${}` 语法来引用模型中的数据,例如:
```html
<!DOCTYPE html>
<html>
<head>
<title th:text="${article.title}"></title>
</head>
<body>
<h1 th:text="${article.title}"></h1>
<p>作者:<span th:text="${article.author}"></span></p>
<p>发布时间:<span th:text="${#dates.format(article.publishTime, 'yyyy-MM-dd HH:mm:ss')}"></span></p>
<div th:text="${article.content}"></div>
</body>
</html>
```
在上面的模板中,使用 `${article.title}` 引用了模型中名称为 `article` 的属性 `title` 的值,用 `th:text` 属性将它设置为页面的标题。其他属性也是类似的使用方式。
这样,你就可以通过访问 `/article/{id}` 来查看对应文章的详情页了。
阅读全文