【问题标题】:Do we need AJAX in Spring MVC? When?我们在 Spring MVC 中需要 AJAX 吗?什么时候?
【发布时间】:2016-03-12 11:13:23
【问题描述】:

我正在尝试学习 Spring MVC,我想亲身体验 MVC。我有一个简单的 Web 应用程序,我在其中输入来自用户的字符串并将数据库中的一些结果显示给用户。所有这些都发生在一个页面中,无需页面刷新。我们可以在控制器中使用 RequestParam 并访问 JSP 页面中的元素。 (我正在为这个项目使用 Bootstrap) 例如在 home.jsp 中,

<form class="navbar-form navbar-right"> 
      <input type="text" name="myValues" class="form-control"  placeholder="product..." >     
</form>

并且,在控制器中,

@RequestMapping(value={"", "/", "/home"}, method = RequestMethod.GET)
public String home(Locale locale, Model model,@RequestParam(value="myValues", required=false) String myValues) {
    logger.info("Welcome home! The client locale is {}.", locale);

这将帮助我在控制器中获取表单查询字符串。

然后我可以进行必要的处理并在控制器中使用 addAttribute 来返回列表。 (Retailerdetail是我实现后端数据库的类)

ArrayList <RetailerDetail> rlist = mydata.getData();
        model.addAttribute("name",rlist);
return "home";

并在jsp页面中显示。

<c:forEach items="${name}" var="element"> 
    <tr>
       <td>${element.name}</td>
    </tr>
</foreach>

此时我正在执行此操作而不使用 Jquery 或 js。我看过一些代码,人们在 Spring MVC 中使用 jquery 或 js 实现 ajax。 我的问题,这是 AJAX 吗?我们在不使用 Javascript 或 Jquery 的情况下获得与 AJAX 类似的功能。为什么在使用 Spring MVC 时使用 jquery 或 js 来实现 AJAX。您能否举一个具体的例子,我可能必须这样做?我已经阅读了很多 MVC 和 AJAX 的教程,但对这个概念没有完全理解。我意识到我在这里遗漏了一些基本概念。但是,如果您能解释一下,它将帮助我更加清楚。

引用What is AJAX, really?

这是 Nosredna 的回答:

"英文粗略的想法:你有一个网页。一些事件(可以是 按下按钮或其他表单事件,或者只是由 timer) 发生并触发 JavaScript 代码请求服务器 新鲜信息(如谷歌股票的最新价值)。有个 服务器上的一段代码,用于收集您传递的信息和 发回一些信息。这与页面服务工作不同 服务器一般都有。当服务器应答时,一个回调函数 (您在对服务器的 JavaScript 调用中指定的)被调用 来自服务器的信息。您的 JavaScript 代码使用该信息 更新一些东西——比如 GOOG 股票图表。”

在我的代码中,无需使用 Javascript 即可实现相同的功能?这意味着我们可以在不使用任何 Javascript 的情况下实现 AJAX 功能?在这种情况下,我们什么时候真的必须使用 Javascript 来实现 AJAX?

【问题讨论】:

  • 你需要客户端的javascript来执行请求。
  • 没有人需要 ajax。这只是一种方便,真的。但这种便利确实使现代网络成为可能。如果你真的愿意,你可以随时进行全面的服务器往返。
  • 嗨@DanielA.White 谢谢你的回答。我无法理解的是我已经制作了这个项目,它给了我上面提到的 AJAX 功能,但我没有在整个项目中使用 Javascript 或 Jquery。正如对什么是 AJAX 问题的回答一样。我觉得我在不使用 Javascript 的情况下得到了相同的结果。
  • 嗨@MarcB 你能否给我一个更具体的地方,我可能不得不在我的项目中使用javascript或jquery进行AJAX。我想使用它,但不知道在哪里?
  • 如果您不知道在哪里或为什么需要 [使用您想到的任何技术],那么您就不需要它。

标签: javascript jquery ajax spring-mvc model-view-controller


【解决方案1】:

如果您在浏览器中打开开发者工具 (f12),打开网络选项卡,然后从您的网页执行请求,您会看到响应中返回了整个 html 页面。

使用 AJAX,服务器将只返回一个 JSON 键值映射。然后,您的 javascript 代码可以使用它来填充页面的一部分,而使大部分页面保持不变。

这样更高效、更快捷。

【讨论】:

  • 嗨 whistling_marmot 非常感谢您的回答。我得到了它。因此,即使它在同一页面中返回结果,它也会返回整个页面而不仅仅是结果。对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多