java如何在控制器的url中传递对象?
public class PersonDto {
private String name;
private int age;
// all-args constructor
}
我继续/start
并在TestService
内的方法 redirect
中执行一些逻辑
我试图在url中传递对象,并重定向到另一个页面,并显示有关person的信息,但面临java.lang.IllegalStateException
@Controller
public class TestController {
@Autowired
private TestService testService;
@GetMapping("/start")
public void stepOne(HttpServletResponse httpResponse) {
httpResponse = testService.redirect(httpResponse);
}
@GetMapping("/person")
public String stepTwo(@RequestParam PersonDto personDto, Model model) {
model.addAttribute("result", personDto);
return "person";
}
}
@Service
public class TestService {
public HttpServletResponse redirect(HttpServletResponse httpResponse) {
PersonDto personDto = new PersonDto("Alex", 27);
String url = "http://localhost:8080" + "/person" +
"?personDto=" + personDto;
httpResponse.setHeader("Location", url);
httpResponse.setStatus(302);
return httpResponse;
}
}
我可以传递物体的部分。像这样
String url = "http://localhost:8080" + "/person" +
"?personDtoName=" + personDto.getName() +"&personDtoAge=" + personDto.getAge();
以及使用@RequestParam
毫无问题地获取参数
但我能把整个对象传递给url吗
# 1 楼答案
将dto转换为JSON对象并尝试一下