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

时间:2013-05-11 20:04:09

标签: javascript spring-mvc backbone.js marionette

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

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

  2. 是否有其他人发现成功将带有JSP视图的传统Spring MVC应用程序移植到具有RESTful API的Javascript MVC视图架构?是否值得和任何建议?

1 个答案:

答案 0 :(得分:3)

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

您现有的mvc路线可能很适合您的域名。您可以调整现有的API,而不是尝试实施全新的api     弹簧控制器返回json。使用这种方法可以免费使用Springs现有的身份验证/会话管理,从而节省您的时间和精力。

有一点需要注意。你将需要处理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();
});