Java Spring MVC将用户添加到跟随者表按钮不将用户保存到db
我在用户的配置文件上有一个follow按钮,该按钮应该将当前用户添加到数据库表Follower中,但是当我单击我已设置好所有内容(据我所知)的按钮时,什么都没有发生 所以 在我有一个追随者服务Java Spring MVC将用户添加到跟随者表按钮不将用户保存到db,java,mysql,jsp,spring-mvc,jpa,Java,Mysql,Jsp,Spring Mvc,Jpa,我在用户的配置文件上有一个follow按钮,该按钮应该将当前用户添加到数据库表Follower中,但是当我单击我已设置好所有内容(据我所知)的按钮时,什么都没有发生 所以 在我有一个追随者服务 @Service public class FollowerService { @Autowired private FollowerRepository followerRepo; @Autowired private UserRepository userRepo
@Service
public class FollowerService {
@Autowired
private FollowerRepository followerRepo;
@Autowired
private UserRepository userRepo;
public void save(Follower follower, String name) {
User user = MyTools.getSessionUser();
follower.setUser(user);
System.out.println(name + "=====================================================");
followerRepo.save(follower);
}
public void delete(long id) {
followerRepo.delete(id);
}
}
这是相当标准的,我可能会丢失数据的某个地方,但我完全没有看到它的某些原因,不知道是什么问题
跟随还原
public interface FollowerRepository extends JpaRepository<Follower, Long> {
List<Follower> findByUser(User user);
}
在UserController中,我有一个映射,但不知道如何映射,我有一个tweet按钮,它在/{userId}中工作,如果我将它映射到同一个url,我会出错
@RequestMapping(value = "/{userId}/follow", method = RequestMethod.POST)
public String doAddFollower(@ModelAttribute("follow") Follower follower, Principal principal) {
String name = principal.getName();
followerService.save(follower, name);
return "redirect:/users/{userId}";
}
更新:
这是我在视图中看到的按钮,我肯定这有问题:
<form:form modelAttribute="follow" cssClass="form-horizontal">
<button value="Follow Me" type="Submit" class="btn btn-primary btn-lg" style=" margin-left: 10px;" >Follow Me</button>
</form:form>
跟着我
您必须在标签上添加“action”属性。例如:
<form:form method="post" action="follow" modelAttribute="follow" cssClass="form-horizontal">
<button value="Follow Me" type="Submit" class="btn btn-primary btn-lg" style=" margin-left: 10px;" >Follow Me</button>
</form:form>
跟着我
表单的“操作”在哪里?谢谢,但现在我无法将“java.lang.String”类型的值转换为所需的“long”类型;嵌套的异常是java.lang.NumberFormatException:对于输入字符串:“follow”我需要在其中传递用户吗?JSP上的“follow”属性在哪里?噢,我对JSP还是有点陌生,你是在谈论标记吗?你必须添加数据以发送到控制器。示例:
在表单标记内。有关详细信息,请查看此链接:
<form:form method="post" action="follow" modelAttribute="follow" cssClass="form-horizontal">
<button value="Follow Me" type="Submit" class="btn btn-primary btn-lg" style=" margin-left: 10px;" >Follow Me</button>
</form:form>