javascript - 将 Backbone.js 添加到现有的 Spring MVC 应用程序

标签 javascript spring-mvc backbone.js marionette

我正在开发一个持续增长的相当大的 Spring MVC 应用程序。这是一个传统的 Spring MVC 应用程序,其 View 是 JSP,它呈现返回给浏览器的 HTML。该应用程序使用了大量的 javascript 和 jQuery 插件。 javascript 散布在整个代码中,并且越来越难以维护。我们想清理它并转移到单页应用程序。我们研究了 Backbone.js,特别是 Marionette。我们有几个问题:

  1. Spring Security 如何处理它?据我了解,从服务器返回的不是 JSP 和 HTML,而是通过 RESTful API 返回的 JSON。因此,当用户使用用户名/密码登录时,我是否需要生成 API key 并将其发送到成功的身份验证响应中?然后从那时起,每个 API 调用都会有 API key 部分来验证每个调用?

  2. 其他人是否成功地将带有 JSP View 的传统 Spring MVC 应用程序迁移到带有 RESTful API 的 Javascript MVC View 架构?值得吗?有什么建议吗?

最佳答案

我有一些从事类似项目的经验。如果您需要对应用程序执行频繁维护,那么您花在清理客户端代码上的时间应该会有返回。如果您重用一些现有的服务器端代码,它可能比您想象的要容易。

很可能您现有的 mvc 路由很适合您的领域。与其尝试实现全新的 api,不如调整现有的 spring Controller 返回 json。 Springs 现有的身份验证/ session 管理将通过这种方法免费提供,从而节省您的时间和精力。

有一点需要注意。您将需要处理从主干获取方法返回的 401 和 403 状态代码。根据您的应用程序,为此设置一个全局处理程序可能很有用。

401/403全局重定向

App.on("initialize:after", function() {
    $(document).ajaxError(function (event, xhr) {
        if(xhr.status === 401) {
            window.location.href('/#sign-in');
        }else if(xhr.status === 403) {
            window.location.href('/#restricted');
        }
    });

    Backbone.history.start();
});

关于javascript - 将 Backbone.js 添加到现有的 Spring MVC 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501244/

相关文章:

java - Spring JPA "And"方法且不为空

javascript - BackboneJS 模型/集合 urlRoot/URL 的意义

javascript - 如何处理 Backbone 模型中的自定义响应

javascript - 在弹出窗口中返回每行的动态数据

java - 将表添加到数据库导致 spring mvc 应用程序中的 tomcat 404 错误

java - 严重 : Exception org. springframework.web.util.Log4jConfigListener

javascript - 除了 Marionette 应用程序之外还可以进行登陆/身份验证

javascript - 用于浏览器检测和 url 链接的脚本

javascript - 从 jquery.ready() 调用的 javascript 什么时候相对于 <head> 中的脚本运行?

javascript - Ember.js - 在对象中定义 ArrayProxy