我正在从事一个 spring MVC 项目,目前正在对后端服务进行新的 API 调用以获取响应并将其用作 Spring MVC ModelAndView 的 viewModel。
不过和传统流程不同的是,这次我不想先把json对象转为java POJO对象。相反,我想直接使用 json 对象作为 ModelAndView 的 viewModel。同时,我也想在jsp中像访问java POJO对象一样自然地访问json对象。这可能吗?
@RequestMapping(value = {SOME_VALUE})
public ModelAndView myFunction() {
ModelAndView modelAndView = new ModelAndView("myViewName");
//getAPIResponseASJsonObject() return json object, with frameworks, I can convert it to Gson JsonObject, or org.json JSONObject
modelAndView.addObject("viewModel", getAPIResponseASJsonObject());
...
return modelAndView
}
我知道在 jsp 中我可以使用 EL 访问 json 对象。但是如果我想将它与标准 JSTL taglib 结合起来,我需要使用一些“转义”机制。
// if I have a Json object "Person" as viewModel like below in jsp:
{
"name": "john",
"age": 30
}
// then in jsp file if I want to access the name property, I need to write jsp like this:
${Person.get("name")}
//or
<c:set var="name" value="${Person.get(\"name\")}">
与使用 Java POJO viewModel 相比,这看起来不自然。而且如果json对象复杂的话jsp可能会很难维护
有了Java POJO,我可以轻松写出
//Person POJO
public Class Person{
private String name;
private int age;
//getter and setter
}
<c:set var="name" value="${Person.name}">
访问名称属性。
我认为可能的解决方案:
有什么建议或更好的想法吗?谢谢。