【问题标题】:Spring MVC: How does the "view" work?Spring MVC:“视图”如何工作?
【发布时间】:2016-02-27 21:32:16
【问题描述】:

我了解 MVC 模式的 ModelController 部分以及 [Spring MVC][1] 的工作原理。

但是,我不确定View

例如:如果我想在我的Rest end point 被击中时发回数据,例如users/{user},如果我发回JSP/ThymeLeaf 页面或a,它是如何工作的?

  1. view 响应是由controller 发送的吗?

  2. JSP 与发送 JSON 响应有何不同?

【问题讨论】:

    标签: java json spring jsp spring-mvc


    【解决方案1】:

    视图是呈现的字符串输出。所以一般来说,您可以说 JSP 输出和 JSON 之间没有区别,因为两者都只是由客户端解释的字符串响应。但通常 JSP 用于输出 html 站点(Java 服务器页面,由服务器渲染/生成的 Html)和 JSON 以在对象结构中传递纯数据。 控制器(通常在 MVC 中)是模型和视图之间的中间件,因此当视图获得输入时,控制器会消化事件并操作数据,并且当模型更改时,控制器会触发 gui 进行更新。 由于 html/web 世界有点不同(请求->响应),Spring-MVC 控制器正在获取用户输入并触发输出字符串的呈现。所以你可以说控制器正在交付。 控制器是改变事物的人,而数据和视图在没有它的情况下是静态的。

    【讨论】:

    • 谢谢,如果我使用 JSP 输出例如 html 表格,我可以对其中的数据进行操作吗? IE。我可以在页面中添加 javascript 等以使其动态吗?
    • 您可以像处理普通 HTML 文本一样执行所有操作。 JSP 只是一个模板,它在服务器上填充数据并在渲染器完成后作为普通页面交付。所以当然你可以添加任何你想要的文本。
    • 好的,所以它本质上与静态 html 相同?
    • 是的,完全正确。考虑您服务器上的一个带有占位符的文本文件,有人用文本请求它,您的程序用该文本填充占位符并将静态文本作为响应提供。响应始终只是静态文本。
    • 好的,但是我是否将我的 JS 文件保存在我的项目结构中与 JSP 文件相同的文件夹中?
    【解决方案2】:

    我要写关于tiles和spring mvc的。 Mvc 控制器将对您的 url 做出反应,就像您通过 localhost:8080/myapp/classroom/hellostudent.html 发送请求一样,spring 控制器将采用 /hellostudent.html 并从 url 中删除 .html 并匹配您在 tiles.xml 文件中的字符串。

    关于 json 所以 Spring mvc 提供了 json api,你必须使用@Responsebody 将 json 对象发送到客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 2013-12-18
      • 2015-12-07
      • 2012-06-17
      • 2019-05-22
      相关资源
      最近更新 更多