将JSP与AngularJS集成,这在现实世界中是一个问题吗?

19

我学习AngularJS的方向正确吗?

我是AngularJS的新手,但成功运行了一个包含AngularJS代码的jsp文件,并进行了测试计算/加法,效果很好。

后来在搜索网络论坛时,我得知它们都不应该同时使用,因为可能会引起问题。

我使用的是NetBeans和GlassFish服务器。


谁告诉你不能在AngularJS中使用JSP?听起来你得到了错误的建议。 - Jacob
2个回答

15

我不建议将Servlet/JSP技术与SPA(你这种情况下由Angular驱动的单页面应用)混合使用。你可以使用SpringMVC(或Jersey)这样的工具,其中包含一个作为Angular驱动SPA的单个JSP。这样,你可以对初始响应中的HTML/JS/CSS载荷进行大量控制。一旦该“应用程序”被加载,它与服务器的所有通信都通过XHR调用(在Angular中为$http或$resource)完成。Spring通过@Controller使创建变得非常简单,并提供了您所需的所有灵活性,例如Spring安全性和依赖注入。

我一直在利用我的业余时间开发一个简单的类似项目,以帮助Java服务器端的人进入Angular。

这个想法是当你向某个控制器发出GET请求时,它会返回一个JSP。

http://your.site.com/contextRoot

该页面将包含JS/CSS链接以加载Bootstrap/JQuery/Angular/等等... 从那里,angular路由器会启动,您的URL可能会变成这样

http://...../contextRoot#home

客户端运行Angular的JSP与服务器之间的所有通信都是通过$http调用完成的,您可以在Spring中创建控制器来处理所有这些内容。

一旦我的“Springular”应用程序可用,我会在这里发布回复。


嗨Jason,这个练习有什么值得注意的地方吗? - Paul John
嗯,我没有能够像我想的那样投入太多时间在这个项目上,但是我所花费的有限时间,让我觉得它使AuthZ变得更简单了。 - Jason

11
这很大程度上取决于你想如何使用每个部分。Angular是一个完整的MVC框架,因此如果你期望在后端使用完整的JSP框架并在前端使用Angular,你可能会遇到一些奇怪的情况。似乎大多数人做的是在前端提供大部分静态Angular,并让它与他们喜欢的任何后端语言编写的REST服务器通信。因此,你实际上正在做两件事情,这两件事情最终是相当独立的:编写前端MVC代码,然后编写后端REST API。
要进行更深入的讨论,请查看: AngularJS客户端MVC模式? 或者

http://draptik.github.io/blog/2013/07/13/angularjs-example-using-a-java-restful-web-service/

或者

使用Spring-mvc的AngularJS


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接