Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC是编写网页应用程序的好解决方案吗?_Java_Spring_Spring Mvc_Web Applications - Fatal编程技术网

Java SpringMVC是编写网页应用程序的好解决方案吗?

Java SpringMVC是编写网页应用程序的好解决方案吗?,java,spring,spring-mvc,web-applications,Java,Spring,Spring Mvc,Web Applications,我用SpringMVC框架开始了我的冒险。我目前的背景是AdobeCQ5应用程序。我阅读的大多数文章、教程和书籍都包含了视图的简单示例,然后它们切换到db集成等等 我想创建一个简单的应用程序,它将是我基于OSGI的后端应用程序的前端。因此,框架在OSGI上工作是很重要的。(我设法在ApacheFelix-Karaf上运行了SpringMVC) 因此,我希望在以下页面中共享组件: 自动填充,动态菜单 根据登录用户的不同,其行为会有所不同 页脚和页眉(也可以是动态的) 和一些特定于页面的组件。我

我用SpringMVC框架开始了我的冒险。我目前的背景是AdobeCQ5应用程序。我阅读的大多数文章、教程和书籍都包含了视图的简单示例,然后它们切换到db集成等等

我想创建一个简单的应用程序,它将是我基于OSGI的后端应用程序的前端。因此,框架在OSGI上工作是很重要的。(我设法在ApacheFelix-Karaf上运行了SpringMVC)

因此,我希望在以下页面中共享组件:

  • 自动填充,动态菜单
  • 根据登录用户的不同,其行为会有所不同
  • 页脚和页眉(也可以是动态的)
和一些特定于页面的组件。我知道我提到的应用程序一点也不复杂,但它只是一个例子

在我看来,这些元素中的每一个都应该有单独的模型、视图和控制器。这些组件应该可以访问某种会话。在SpringMVC中,我看不到这样做的方法

对于我想要实现的目标,Spring MVC是一个很好的解决方案吗?我达到了一个地步,似乎我做出了一个错误的决定。我觉得有点受骗了,因为有很多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技术来完成这些特性中的大部分

  • 对于用户身份验证和会话,请查看
  • 对于页眉、页脚、导航栏等,您应该考虑使用和创建可重用的标记
  • 您可以使用优秀的HTML/CSS框架,如

  • 希望这能有所帮助。

    您的需求似乎更多地是关于前端的。Spring在这些问题上都帮不了你。还说Spring文档已经过时是毫无意义的。甚至他们自己的网站上也有很多新的教程,这些教程和Git中的完整代码示例都很有帮助。我并没有说文档已经过时了,但互联网上有很多文章,这些文章与几年前的Spring相关。(这是一个巨大的时间)这会把事情搞得一团糟,因为很多方法或实践已经过时,我们必须小心。谢谢,它澄清了很多。关于GWT和类似的问题-我不喜欢这些解决方案。这感觉就像我的双手紧握,定制开发似乎很难,代码也不干净。感觉就像是在写一个桌面应用程序。所以唯一的办法可能是使用单页应用程序。另一个限制是,该框架应该易于在OSGI容器上设置和使用。我觉得有点受骗了,因为互联网上的很多例子都表明你可以用Spring MVC创建网页,但是当它变得复杂时——这是毫无用处的。我支持你对GWT的看法,也对Spring MVC抱有同样的看法。我在@RestController中使用SpringMVC——另一种选择是使用Jersey。但我越来越倾向于使用REST服务服务JSON实体的微SOA。仅供参考-SPA甚至不需要任何容器-将内容部署到您的Web服务器。使用Yeoman/Lineman生成项目,使用Grunt进行常规的内部管理。OSGI-您的服务器层与OSGI兼容。除了我过去读过的东西,我从来没有想过客户