아이디어는 이미 포함 된 일부 매개 변수 (예 : 자동차 이름 및 가격)와 함께 POST 요청을 수신하는 것입니다.
고객이 알면 안되는 매개 변수를 추가해야합니다 (예 : 고객이 구매하기 전에 알면 안되는 자동차 VIN).
그런 다음 매개 변수를 추가하여이 요청을 다른 사이트로 전달하고 싶습니다.이 요청은 내가 전달한 모든 데이터 (자동차 이름, 가격, vin)
필터가 아닌 컨트롤러 수준에서 구현하는 방법이 있습니까?
@RequestMapping(value = "/abc")
public void ABC(final HttpServletRequest request) {
request.getParameterMap().put("vin", VIN_CODE); // cannot do that because it is read-only
return "forward:https://completelyanothersite.com";
}
편집 : 의견에 따라 전달은 해결책이 아니라 리디렉션이 하나입니다.
Spring MVC는 HTTP 요청과 응답을 자동으로 구문 분석하고 매핑하는 강력한 기능 세트를 제공하므로 수동으로 수행 할 필요가없고 비즈니스 로직에 집중할 수 있습니다. 이 경우 Spring은 다음 과 같은 모든 요청 매개 변수의 맵을 제공 할 수 있습니다 .
@PostMapping("/abc")
public void abc(@RequestParam Map<String, String> params) { ... }
(또는 다중 값 매개 변수가 필요한 경우 MultiValueMap
약간 더 표준에 맞지만 작업하기가 좀 더 복잡한를 사용할 수 있습니다.) 실제로 변경 가능한지도의 비공개 사본을 얻지 LinkedHashMap
만 확실하지 않은 경우 항상이라고 말할 수 있습니다 new HashMap<>(params)
.
이 params
맵 이 있으면 원하는 추가 값을 추가 할 수 있지만, 자신의 애플리케이션 내에서 다른 컨트롤러에 누군가를 보낼 수없는 redirect:
경우 응답을 생성해야합니다 (이 경우 VIN이 URL) 또는 REST 요청을 다른 서비스에 직접 만든 다음 정보를 다시 사용자에게 릴레이하십시오.
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения