【问题标题】:Pass model object from spring controller to jsp将模型对象从弹簧控制器传递给jsp
【发布时间】:2014-08-15 16:49:25
【问题描述】:

我正在尝试将模型对象从 spring 控制器传递给 jsp。但是对象没有在目标页面上呈现。

控制器

    @Path("test");
    public ModelandView gettest(@Context HttpServletRequest request) {
            ModelandView responseView = new ModelandView(new JsonView());
            //some code here
            if (somecondition) {
                responseView.setViewName("track/trackvehicle");
                responseView.addObject("JSONdata", vehicleID);
            }
            else {
                System.out.println("Not present");
            }
            return responseView;
        }

trackvehicle.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <input type="text" id="test_id" value="${JSONdata}"/>

但是文本框没有呈现任何数据。有什么问题?

【问题讨论】:

  • 你为什么使用new JsonView()?您还使用带有 Spring 的 Jersey 还是仅使用 Spring MVC?你似乎混合了两者
  • @geoand : 先生,它是一个基于 ajax 的应用程序,所以我使用了 JsonView() 而它只是 Spring MVC
  • 感谢您的信息!为什么你有@Path 注释?那不是 Spring MVC
  • @geoand:对不起,先生。是的,它是请求映射
  • {$JSONdata} 应该是${JSONdata}

标签: java spring jsp spring-mvc


【解决方案1】:

将您的代码更改为:

@Controller
public class YourController {    
    @RequestMapping("test")
    public ModelAndView gettest() {
        //some code here
        if (somecondition) {
            return new ModelAndView("track/trackvehicle", "JSONdata", vehicleID);
        }

        System.out.println("Not present");
        return new ModelAndView("track/trackvehicle");
    }
}

【讨论】:

  • 先生,我做了同样的事情,但仍然没有在我的 jsp 上获得所需的结果。我尝试使用 ${JSONdata} 检索值。
  • 控制器方法被调用了吗? JSP 是否显示但没有正确的数据?
  • 控制器先生正在被呼叫。控制台还说模型对象被添加到请求视图中,名称为 track/trackvehicle。转发到 InternalResourceView 'track/trackvehicle' 中的资源 [/WEB-INF/jsp/track/trackvehicle.jsp]
  • 您能否使用生成的带有 ID test_id 的输入 HTML 更新您的问题?
  • 这将有助于服务器发送到浏览器的实际 HTML。浏览器中的页面源应该拍摄它
【解决方案2】:

您在评论部分提到了它基于 spring mvc 的 ajax...

你是如何点击这个 ajax url....

对于 spring mvc 中的 ajax 调用,使用 @ResponseBody 注释并使用 ajax 方法(如经典 ajax 或 jquery ajax 或 jquery 获取函数并加载值)点击 url。

希望以下链接能为您提供更清晰的图片

Returning ModelAndView in ajax spring mvc

How to render a View using AJAX in Spring MVC

【讨论】:

  • 很棒的链接 :) 谢谢你。但是我的 ajax 调用来自一个 jsp,我想要对其他 jsp 的响应。所以我使用 return new ModelAndView("track/trackvehicle", "JSONdata", vehicleID);这是将模型对象渲染到 trackvehicle.jsp 页面,但使用 jstl 标记我无法检索值。
  • 我认为您不清楚您的要求。 AJAX 主要用于加载页面的一部分或少量数据或仅加载数据而不是页面。 AJAX 从客户端调用意味着从浏览器调用,并将访问服务器并将响应返回给客户端,无论它调用什么。根据您的评论,我认为您可能正在寻找页面重定向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多