springMVC 에서 contrller 의 몇 가지 반환 유형 에 대해 말씀 드 리 겠 습 니 다.

Controller 방법의 반환 값 은 다음 과 같은 몇 가지 가 있 습 니 다.
1.ModelAndView 로 돌아 가기
Model AndView 로 돌아 갈 때 가장 흔히 볼 수 있 는 반환 결과 입 니 다.방법 이 끝 날 때 Model AndView 대상 을 정의 하고 Model 과 View 를 각각 설정 해 야 합 니 다.
2、복귀 String
1):논리 보기 이름 을 나타 내 는 문자열
실제 접근 경로="접두사"+논리 보기 이름+"접두사"
메모:논리 보기 이름 을 나타 내 는 String 을 되 돌려 준다 면 Model 의 되 돌아 오 는 방식 은 다음 과 같 습 니 다.

public String testController(Model model){
model.addAttribute(attrName,attrValue);//   ModelAndView addObject  
return "     ";
 }
2):리 다 이 렉 트 리 다 이 렉 트
redirect 의 특징 은 servlet 와 마찬가지 로 redirect 를 사용 하여 주소 표시 줄 의 URL 을 변경 하 는 동시에 이전 request 를 휴대 하지 않 습 니 다.
사례:

public String testController(Model model){
 return "redirect:path";//path        
 }
3):대표 forward 리 트 윗
forward 를 통 해 전송 합 니 다.주소 표시 줄 의 URL 은 변경 되 지 않 습 니 다.또한 지난번 request 를 쓰기 요청 에 가 져 갑 니 다.
사례:

 public String testController(Model model){
 return "forward:path";//path       
 }
3、돌아 가기 void
이 결 과 를 되 돌 릴 때 Controller 방법의 인삼 에서 HTTP ServletRequest 와 HTTP ServletResponse 대상 이 요청 한 수신 과 응답 을 정의 할 수 있 습 니 다.
1)request 로 페이지 전송

request.getRequestDispatcher("    ").forward(request,response);
2)response 를 사용 하여 페이지 방향 변경

response.sendRedirect("     ");
3)응답 결 과 를 response 로 지정 할 수도 있다.

response.setCharacterEncoding("UTF-8"); 
response.setContentType("application/json;charset=utf-8"); 
 response.getWriter.write("json "); 
상기 세 가지 반환 치 는 중요 하지 않 고 중요 하지 않 은 차이 가 없다.일반적으로 모두 사용 할 수 있 지만 가끔 사용 하 는 방식 은 약간의 차이 가 있 을 수 있다.
보충:SpringMvc 에서 Controller 방법의 다양한 실현 방식(어느 페이지 로 돌아 갈 지 지정 하고 페이지 로 돌아 갈 데 이 터 를 지정 합 니 다)
1)ModelAndView

@RequestMapping("/list")
 public ModelAndView itemsList() throws Exception{  
 List<Items> list = itmesService.list();
 //  ModelAndView  
 ModelAndView modelAndView = new ModelAndView();
 // list        
 modelAndView.addObject("itemList", list);
 modelAndView.setViewName("itemList");//       ,        
 //           ,        ,        ("/WEB-INF/jsp/itemList.jsp")
 return modelAndView;
 }
 
2)String(가장 많이 사용 되 는,가장 편리 한,제안)

@RequestMapping("/itemEdit/{id}")
 public String itemEdit(@PathVariable("id") Integer id, HttpServletRequest reuqest, 
  Model model) throws Exception{
 
 //String idStr = reuqest.getParameter("id");
 Items items = itmesService.findItemsById(id);
 // items       
 model.addAttribute("item", items);
 
 //    editItem, @Controller    ,          ,        ("/WEB-INF/jsp/editItem.jsp")
 return "editItem";
 }
3)void 로 돌아 가기

public void update(Items items,HttpServletRequest request,HttpServletResponse response)throws Exception{
 //    , items     items ,jsp    items  
 request.setAttribute("items", items);
 //       
 //   void    ,      SpringMvc   ,             ,     
 //             
 request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);
 }
      SpringMvc   ,             ,     
 //             
 request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);
 }
4)방법 에 필요 한 매개 변수 정의
3)의 예 를 들 어 저 는 update 방법 에서 정 의 했 습 니 다.
Items items,HttpServletRequest request,그리고 HttpServletResponse response 세 가지 유형.
하지만 제 가 방법 에 response 를 사용 하지 않 았 기 때문에 삭제 할 수 있 습 니 다.프로그램 에 있어 서 는 그렇지 않 습 니 다.
영향 을 미치다.
따라서 여러분 이 방법 을 정의 할 때 자신의 실제 수요 에 따라 필요 한 종 류 를 정의 할 수 있 거나 나중에 코드 가 바 뀌 어야 할 까 봐 걱정 된다 면
모든 정의 에서 도 가능 합 니 다.
업데이트
5)인터페이스 가 페이지 를 뛰 어 넘 는 것 이 아니 라 데 이 터 를 되 돌려 주 려 면@ResponseBody 의 주 해 를 추가 해 야 합 니 다.
예:

@RequestMapping("atimynyc/getUser")
@ResponseBody
public User getUser(String id){
  User user = new User();
  user.setUserName = "Atimynyc";
  user.setUserAge = 18;
  user.setUserPhone = "123456789";
  return User;
}
Response Body 를 더 하면 springmvc 는 이 인터페이스 가 데 이 터 를 되 돌려 주 는 것 임 을 알 수 있 습 니 다.예 를 들 어 ajax 로 위의 인터페이스 url 을 호출 할 때 atimy nyc/getUser 는 user 라 는 대상 을 얻 을 수 있 습 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기