2016-09-15 41 views
1

我UserController类:使用Jparepository的方法的FindAll与ModelAndView的

package org.peronalitymeet.controller; 

import org.peronalitymeet.entity.User; 
import org.peronalitymeet.entity.request.AddUserRequest; 
import org.peronalitymeet.repository.UserRepository; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RestController; 

import java.util.List; 

@RestController 
public class UserController { 

    private UserRepository userRepository; 

    @Autowired 
    public UserController(UserRepository userRepository) { 
     this.userRepository = userRepository; 
    } 

    @RequestMapping(value="/users", method = RequestMethod.GET) 
    public List<User> findAllUsers(){ 
     return userRepository.findAll(); 
    } 

    @RequestMapping(value="/signup", method = RequestMethod.POST) 
    public void addUser(@RequestBody AddUserRequest addUserRequest){ 
     User user = new User(); 
     user.setFirstname(addUserRequest.getFirstname()); 
     user.setSurname(addUserRequest.getSurname()); 
     userRepository.save(user); 
    } 

} 

我的问题是,现在,如果我打开本地主机:8080 /用户URL, 我会得到我的JSON格式内的所有用户。之前我遵循Spring mvc教程,在那里他们使用ModelAndView方法在调用URL时自动打开一个jsp页面。

有没有什么方法可以使用FindAll Users()并同时打开一个jsp或者html页面,并在那里列出方法的结果?

回答

1

@RestController是一个元注释,它告诉Spring将原样返回的文本返回给用户。这相当于将@ResponseBody @Controller添加到您的班级。

如果你想用JSP做一些事情,你的类应该看起来像下面的东西。我只是在改变端点,但这个想法无处不在。

package org.peronalitymeet.controller; 

import org.peronalitymeet.entity.User; 
import org.peronalitymeet.entity.request.AddUserRequest; 
import org.peronalitymeet.repository.UserRepository; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.Controller; 
import org.springframework.web.bind.annotation.ResponseBody; 
import org.springframework.web.servlet.ModelAndView; 


import java.util.List; 

@Controller 
public class UserController { 

    private UserRepository userRepository; 

    @Autowired 
    public UserController(UserRepository userRepository) { 
     this.userRepository = userRepository; 
    } 

    @RequestMapping(value="/users", method = RequestMethod.GET) 
    public ModelAndView findAllUsers(ModelAndView mav){ 
     List<User> users = userRepository.findAll(); 
     mav.addObject("users", users); 
     mav.setViewName("users"); 
     return mav; 
    } 

    @ResponseBody 
    @RequestMapping(value="/signup", method = RequestMethod.POST) 
    public void addUser(@RequestBody AddUserRequest addUserRequest){ 
     User user = new User(); 
     user.setFirstname(addUserRequest.getFirstname()); 
     user.setSurname(addUserRequest.getSurname()); 
     userRepository.save(user); 
    } 

} 

然后设置你叫users.jspusers可变显示的项目视图页面,你应该设置。

+0

非常感谢。 –

相关问题