Java SpringMVC是编写网页应用程序的好解决方案吗?
我用SpringMVC框架开始了我的冒险。我目前的背景是AdobeCQ5应用程序。我阅读的大多数文章、教程和书籍都包含了视图的简单示例,然后它们切换到db集成等等 我想创建一个简单的应用程序,它将是我基于OSGI的后端应用程序的前端。因此,框架在OSGI上工作是很重要的。(我设法在ApacheFelix-Karaf上运行了SpringMVC) 因此,我希望在以下页面中共享组件:Java SpringMVC是编写网页应用程序的好解决方案吗?,java,spring,spring-mvc,web-applications,Java,Spring,Spring Mvc,Web Applications,我用SpringMVC框架开始了我的冒险。我目前的背景是AdobeCQ5应用程序。我阅读的大多数文章、教程和书籍都包含了视图的简单示例,然后它们切换到db集成等等 我想创建一个简单的应用程序,它将是我基于OSGI的后端应用程序的前端。因此,框架在OSGI上工作是很重要的。(我设法在ApacheFelix-Karaf上运行了SpringMVC) 因此,我希望在以下页面中共享组件: 自动填充,动态菜单 根据登录用户的不同,其行为会有所不同 页脚和页眉(也可以是动态的) 和一些特定于页面的组件。我
- 自动填充,动态菜单
- 根据登录用户的不同,其行为会有所不同
- 页脚和页眉(也可以是动态的)
SpringMVC有什么好处?你对我应该寻找什么样的框架有什么建议吗?简短的回答:你不仅仅依靠Spring MVC来帮助你实现组件化和控制复杂性 通过在给定的“compisite视图”上要求一个单独的模型、视图和控制器,实际上就是要求一个基于组件的体系结构 SpringMVC是基于请求的,而不是基于组件的,因此您对框架的选择是不一致的。这并不意味着不能将SpringMVC模块化。您必须使用JSPSIncludes或JSTL 您可以通过方法注入访问HttpSession。只需将其添加为参数,如下所示:-
public JsonResponse getSessionIncontroller
(@RequestBody String jsonReqString ,HttpSession session)
{
session.setAttribute("success" , "successfully accessed");
return jsonResponse;
}
然而,很久以前我就放弃了这种开发web应用程序的方式。我建议你把所有的复杂性放在一张桌子上,并寻找一个框架来解决所有的问题,以帮助你优雅地克服复杂性。因此,请允许我向您介绍其他选择。选择以下选项之一:-
单页应用程序
您可以非常快速地开发小型应用程序。考虑盎格鲁JS、Enbjjs、NokOutjs或ReBoo.js。无论您的菜单是动态更改还是保持不变,您都可以让客户端Javascript控制此操作,并一次性发送您的授权JSON对象
基于组件的Arch。
通过PrimeFaces或类似的库执行JSF路径。服务器端租用将允许您构建compisite视图,其中页眉、页脚现在只是视图的一个片段/部分,并且您有自己的处理程序。(我不愿意走这条路,因为这是一种品味。)
GWT
结帐GWT。它们可以让你构建你的视图和java对象,代码会生成服务器端到JavaScript等。如果你非常害怕JavaScript,可以考虑这个选项。(另一方面,如果您害怕Javascript,请不要构建web应用程序。)
祝您好运。您感兴趣的大多数web应用程序功能都超出了vanilla Spring MVC的范围,它实际上更像是一个后端框架。但是,您可以使用其他Java技术来完成这些特性中的大部分
希望这能有所帮助。您的需求似乎更多地是关于前端的。Spring在这些问题上都帮不了你。还说Spring文档已经过时是毫无意义的。甚至他们自己的网站上也有很多新的教程,这些教程和Git中的完整代码示例都很有帮助。我并没有说文档已经过时了,但互联网上有很多文章,这些文章与几年前的Spring相关。(这是一个巨大的时间)这会把事情搞得一团糟,因为很多方法或实践已经过时,我们必须小心。谢谢,它澄清了很多。关于GWT和类似的问题-我不喜欢这些解决方案。这感觉就像我的双手紧握,定制开发似乎很难,代码也不干净。感觉就像是在写一个桌面应用程序。所以唯一的办法可能是使用单页应用程序。另一个限制是,该框架应该易于在OSGI容器上设置和使用。我觉得有点受骗了,因为互联网上的很多例子都表明你可以用Spring MVC创建网页,但是当它变得复杂时——这是毫无用处的。我支持你对GWT的看法,也对Spring MVC抱有同样的看法。我在@RestController中使用SpringMVC——另一种选择是使用Jersey。但我越来越倾向于使用REST服务服务JSON实体的微SOA。仅供参考-SPA甚至不需要任何容器-将内容部署到您的Web服务器。使用Yeoman/Lineman生成项目,使用Grunt进行常规的内部管理。OSGI-您的服务器层与OSGI兼容。除了我过去读过的东西,我从来没有想过客户