有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    将dto转换为JSON对象并尝试一下