无法使用JPA的Spring Boot从数据库中检索特定数据以更新功能

时间:2019-03-11 14:53:30

标签: hibernate spring-boot jpa

控制器类代码:

@RequestMapping("/update-admin/{email}") public String
      editUser(@PathVariable(value = "email") String email,@ModelAttribute User
      user, HttpServletRequest request) { if
      (userService.findByEmail(user.getEmail()) != null) {
      request.setAttribute("users", userService.findByEmail(email));
      request.setAttribute("name",user.getName());
      request.setAttribute("mode","MODE_UPDATE"); return "homepage"; }
      else { request.setAttribute("error", "404 Page not Found");
      request.setAttribute("mode", "MODE_Page"); return "homepage"; }
    }

用户服务代码:

public User findByEmail(String email) {
        return userRepository.findByEmail(email);
}

用户存储库代码:

public User findByEmail(String email);

JSP页面:

    <li><a href="/update-admin/${user.getEmail()}">Edit Detail</a></li>
<c:choose>
    <c:when test="${mode=='MODE_UPDATE' }">
        <div class="container text-center">
        <hr>

            <h3>Edit Detail</h3>
                <hr>

                <form class="form-horizontal" method="POST" action="saveadmin" >

                        <input type="hidden" name="email" value="${user.email }" />
                    <div class="form-group">
                        <label class="control-label col-md-3">First Name</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="name" value="${user.name }" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-md-3">Last Name</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="lastname" value="${user.lastname }" />
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="control-label col-md-3">Email-id</label>
                        <div class="col-md-7">
                            <input type="email" class="form-control" name="email" value="${user.email }" />
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="control-label col-md-3">Institute name</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="institute_name" value="${user.institute_name }" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-md-3">Institute Address</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="institute_add" value="${user.institute_add }" />
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="control-label col-md-3">Qualification</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="qualification" value="${user.qualification }" />
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="control-label col-md-3">City</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="city" value="${user.city }" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-md-3">Area</label>
                        <div class="col-md-7">
                            <input type="text" class="form-control" name="area" value="${user.area }" />
                        </div>
                    </div>
                    <div class="form-group">
                        <label class="control-label col-md-3">Contact Number</label>
                        <div class="col-md-7">
                            <input type="number" class="form-control" name="number" value="${user.number }" />
                        </div>
                    </div>  

                    <div class="form-group ">
                        <input type="submit" class="btn btn-primary" value="Update" />
                    </div>
                </form>
            </div>
        </c:when>
    </c:choose> 

我无法显示mysql数据库中的其他字段值,除了电子邮件中的“更新功能”,如图所示。请帮忙。

Front end

1 个答案:

答案 0 :(得分:0)

您可以尝试:

@RequestMapping("/update-admin/{email}") 
public String editUser(@PathVariable(value = "email") String email,@ModelAttribute User user, HttpServletRequest request) { 
        User persisted = userService.findByEmail(email);
        if( persisted != null) {
          request.setAttribute("user", persisted);
          request.setAttribute("name",user.getName());
          request.setAttribute("mode","MODE_UPDATE"); return "homepage"; }
        else { 
          request.setAttribute("error", "404 Page not Found");
          request.setAttribute("mode", "MODE_Page"); return "homepage"; 
        }
    }

请注意第request.setAttribute("user", persisted);行,我们需要确保将属性定义为用户。