[SPRING] 하나의 컨트롤러를 Spring MVC의 다른 컨트롤러 URL로 호출하는 방법은 무엇입니까?
SPRING하나의 컨트롤러를 Spring MVC의 다른 컨트롤러 URL로 호출하는 방법은 무엇입니까?
안녕하세요, 저는 Spring MVC에 익숙하지 않습니다. 한 컨트롤러에서 다른 컨트롤러로 메소드를 호출하고 싶습니다. 어떻게해야합니까? 아래 코드를 확인하십시오.
@Controller
@RequestMapping(value="/getUser")
@ResponseBody
public User getUser()
{
User u = new User();
//Here my dao method is activated and I wil get some userobject
return u;
}
@Controller
@RequestMapping(value="/updatePSWD")
@ResponseBody
public String updatePswd()
{
here I want to call above controller method and
I want to update that user password here.
how can I do that
return "";
}
어느 누구도 나를 도와줍니다.
해결법
-
==============================
1.비즈니스 로직을 컨트롤러에 넣을 필요가없고, 비즈니스 로직이 데이터베이스와 관련이 없으므로 트랜잭션 클래스 / 메소드가 서비스 계층에 있어야합니다. 하지만 다른 컨트롤러 방법으로 리디렉션해야 할 경우 리디렉션을 사용하십시오.
비즈니스 로직을 컨트롤러에 넣을 필요가없고, 비즈니스 로직이 데이터베이스와 관련이 없으므로 트랜잭션 클래스 / 메소드가 서비스 계층에 있어야합니다. 하지만 다른 컨트롤러 방법으로 리디렉션해야 할 경우 리디렉션을 사용하십시오.
@RequestMapping(value="/updatePSWD") @ResponseBody public String updatePswd() { return "redirect:/getUser.do"; }
-
==============================
2.이렇게 할 수 있습니다 :
이렇게 할 수 있습니다 :
@Autowired private MyOtherController otherController; @RequestMapping(value = "/...", method = ...) @ResponseBody public String post(@PathVariable String userId, HttpServletRequest request) { return otherController.post(userId, request); }
-
==============================
3.컨트롤러 클래스는 다른 클래스와 마찬가지로 Java 클래스입니다. Spring이 리플렉션을 사용하여 주석을 검사하는 영리한 마법을 사용하지만 코드는 일반적인 Java 코드와 마찬가지로 메소드를 호출 할 수 있습니다.
컨트롤러 클래스는 다른 클래스와 마찬가지로 Java 클래스입니다. Spring이 리플렉션을 사용하여 주석을 검사하는 영리한 마법을 사용하지만 코드는 일반적인 Java 코드와 마찬가지로 메소드를 호출 할 수 있습니다.
public String updatePasswd() { User u = getUser(); // manipulate u here return u; }
-
==============================
4.다른 컨트롤러로 리디렉션 할 때 @reponseBody 주석을 추가 할 필요가 없습니다. 코드가 다음과 같이 보일 것입니다.
다른 컨트롤러로 리디렉션 할 때 @reponseBody 주석을 추가 할 필요가 없습니다. 코드가 다음과 같이 보일 것입니다.
@Controller class ControlloerClass{ @RequestMapping(value="/getUser",method = RequestMethod.GET) @ResponseBody public User getUser(){ User u = new User(); //Here my dao method is activated and I wil get some userobject return u; } @RequestMapping(value="/updatePSWD",method = RequestMethod.GET) public String updatePswd(){ //update your user password return "redirect:/getUser"; } }
-
==============================
5.getUser 메소드를 서비스 (예 : UserService 클래스)에 배치해야합니다.
getUser 메소드를 서비스 (예 : UserService 클래스)에 배치해야합니다.
getUser 컨트롤러에서 서비스의 getUser 메소드를 호출하여 사용자를 가져옵니다.
비슷하게 updatePswd 컨트롤러에서 서비스의 getUser 메소드를 호출 할 수도 있습니다.
from https://stackoverflow.com/questions/24949846/how-to-call-one-controller-to-another-controller-url-in-spring-mvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] BeanDefinitionParser를 Spring 웹 서비스 요소로 찾을 수 없다. (0) | 2019.05.09 |
---|---|
[SPRING] Spring @ExceptionHandler 및 멀티 스레딩 (0) | 2019.05.09 |
[SPRING] 봄 스케줄링 - 매일 자정에 크론 표현이 작동하지 않습니까? (0) | 2019.05.09 |
[SPRING] java.lang.ClassNotFoundException : org.aspectj.util.PartialOrder $ PartialComparable (0) | 2019.05.09 |
[SPRING] Spring Data JPA를 사용하여 매개 변수를 자동으로 변환합니다. (0) | 2019.05.08 |