【发布时间】:2020-03-08 07:40:21
【问题描述】:
我的用户个人资料页面有一个侧边栏,其中包含两个项目,用于 1) 更新信息和 2) 显示用户已经撰写的评论。
第一项工作完美(因为它包括一个form 并有一个submit 按钮)。但对于第二个,我不知道。目标是当我点击My Reviews 时,会调用控制器类中的一个方法,从数据库中提取用户的评论并将结果显示在页面右侧。
由于我没有第二个项目的submit 按钮或form,我不知道如何实现它。
这是我的代码:
<div class="module-inner">
<div class="side-bar">
<nav class="side-menu">
<div class="col-xs-3">
<ul class="nav nav-pills nav-stacked">
<li class="active"><a data-toggle="pill" href="#profile">Profile</li>
<li class="active"><a data-toggle="pill" href="#review">My
Reviews</a></li>
</ul>
</div>
</nav>
</div>
<div class="content-panel">
<div class="col-xs-9">
<div class="tab-content">
<div id="profile" class="tab-pane fade">
<form class="form-horizontal" th:action="@{/edit_profile}"> <fieldset class="fieldset">
<h3 class="fieldset-title">Personal Info</h3>
<div class="form-group">
<label class="col-md-2 col-sm-3 col-xs-12 control-label">User
Name</label>
<div class="col-md-10 col-sm-9 col-xs-12">
<input type="text" class="form-control"
th:disabled="${currentUser.email}"
th:value="${currentUser.email}">
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-3 col-xs-12 control-label">First
Name</label>
<div class="col-md-10 col-sm-9 col-xs-12">
<input name="firstname" type="text" class="form-control"
th:value="${currentUser.firstname}">
</div>
</div>
<div class="form-group">
<label class="col-md-2 col-sm-3 col-xs-12 control-label">Last
Name</label>
<div class="col-md-10 col-sm-9 col-xs-12">
<input name="lastname" type="text" class="form-control"
th:value="${currentUser.lastname}">
</div>
</div>
</fieldset>
<hr>
<div class="form-group">
<div
class="col-md-10 col-sm-9 col-xs-12 col-md-push-2 col-sm-push-3 col-xs-push-0">
<input class="btn btn-primary" type="submit"
value="Update Profile">
</div>
</div>
</form>
</div>
<div id="review" class="tab-pane fade">
<h3>Menu 2</h3>
<p>You have no reviews yet.</p>
</div>
</div>
</div>
</div>
</div>
这是我的控制器:
@RequestMapping(value = "/findUserReviews", method = RequestMethod.GET)
public ModelAndView findUserReviews() {
ModelAndView modelAndView = new ModelAndView();
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
User user = userService.findUserByEmail(auth.getName());
..
modelAndView.addObject("reviews", reviewRepository.findUserRevies());
modelAndView.setViewName("profile");
return modelAndView;
}
我使用以下技术:Spring boot、Hibernate 和 Thymeleaf。
任何帮助将不胜感激。
最终更新:接受答案中提供的代码有效,前提是我不返回 ModelAndView 而是 List<Review>。
【问题讨论】:
-
你试过使用javascript和Ajax调用吗?
-
@SebastianI。您能否再解释一下。使用 Ajax,我没有尝试过,但我尝试使用 javascript,但我无法让它工作。如果你能把你的想法写成伪代码,那就太好了。
标签: java spring-boot controller thymeleaf