Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 有人从Struts 1迁移到另一个web框架吗?_Java_Ajax_Struts - Fatal编程技术网

Java 有人从Struts 1迁移到另一个web框架吗?

Java 有人从Struts 1迁移到另一个web框架吗?,java,ajax,struts,Java,Ajax,Struts,在我当前的项目中,过去几年我们一直在使用Struts 1,而且。。。啊哼。。。Struts正在显示它的时代。我们正在慢慢地将前端代码迁移到使用服务器XML的Ajax客户端。我想知道你们中是否有人将一个遗留Struts应用程序迁移到了另一个框架,以及在迁移过程中面临的挑战。当然。从Struts转移到AJAX框架是一种非常解放的体验。(虽然我们使用的是JSON而不是XML,解析起来要容易得多。)但是,您需要知道,它实际上是对应用程序的完全重写 与MVC的经典Database/JSP/Actions方

在我当前的项目中,过去几年我们一直在使用Struts 1,而且。。。啊哼。。。Struts正在显示它的时代。我们正在慢慢地将前端代码迁移到使用服务器XML的Ajax客户端。我想知道你们中是否有人将一个遗留Struts应用程序迁移到了另一个框架,以及在迁移过程中面临的挑战。

当然。从Struts转移到AJAX框架是一种非常解放的体验。(虽然我们使用的是JSON而不是XML,解析起来要容易得多。)但是,您需要知道,它实际上是对应用程序的完全重写

与MVC的经典Database/JSP/Actions方案不同,您将发现自己正在转向Servlet/Javascript方案,其中模型由HTTP GET请求表示,动作由POST/PUT/DELETE请求表示,视图由web浏览器动态呈现。这在每个领域都带来了有趣的挑战:

服务器端-在服务器端,您需要制定一个向客户端公开数据的标准。最简单、最简单的方法是采用与数据层次结构最匹配的方法。使用servlet实现这一点相当简单,但是Sun还开发了一个使用属性的工具,看起来非常酷

服务器端的另一个方面是选择传输协议。我知道您已经提到了XML,但您可能需要重新考虑。不同浏览器的XML解析器差别很大。一个浏览器可能会使文档根成为第一个子级,另一个浏览器可能会添加一个特殊的内容对象,并且它们都会以不同的方式解析空白。更糟糕的是,主流浏览器似乎没有正确实现normalize()函数。这意味着XML解析可能充满了黑客

更容易解析,结果也更一致。Javascript和Actionscript(Flash)都可以将JSON直接转换为对象。这使得访问数据成为一个简单的x.y或x[y]问题。还有很多API可以处理各种语言中的JSON。因为它很容易解析,所以几乎比XML更好地支持它

客户端-您将遇到的第一个问题是没有人知道如何编写Javascript。尤其是那些自认为如此的人。如果你有关于Javascript的书,现在就把它们扔出窗外。几乎没有关于这门语言的好书,因为它们都遵循相同的“黑客”模式,而没有真正深入研究它们在做什么

从最底层来看,您的团队将需要Javascript开发方面的补救培训。先从这个开始。它实际上是语言信息的来源。下一站是Javascript。我不同意他所说的每一句话,但他是为数不多的语言专家之一

<>你一旦明白了,就考虑你想使用什么框架,如果有的话。一般来说,我不喜欢原型和Mootools之类的东西。他们倾向于把一个简单的问题搞得更糟。尽管如此,您可以自由地评估这些工具,并决定它们是否适合您

如果你绝对觉得你的团队太缺乏经验,没有一个框架就无法生存,那么你的团队可能符合要求。GWT允许您用Java代码快速编写DHTMLWeb应用程序,然后将它们编译成Javascript。问题是这样做会放弃大量的灵活性。Javascript语言比GWT公开的功能强大得多。然而,GWT确实让Java开发人员能够更快地跟上进度。所以选择你的战斗

这些是我能想到的关键领域。我可以说,一旦从应用程序中获得struts,您将松一口气。它可能有点像野兽。尤其是如果您的Struts模型上有经验不足的开发人员工作的话。:-)

有问题吗

编辑1:我忘了补充一点,那就是你的团队应该虔诚地研究这个问题。这些是现代浏览器中可用的API。如果发现有人在使用DOM0API(例如document.forms['myform'].blah.value而不是document.getElementById(“blah”).value),则强制他们转录整个DOM 1规范,直到他们完全理解它为止

<> > >编辑2:< /强>要考虑的另一个关键问题是如何记录您新奇的新Ajax应用程序。REST风格的界面很适合在Wiki中记录。我所做的是创建一个顶级页面,列出每个服务和描述。通过单击服务路径,您将看到一个包含每个子路径详细信息的文档。从理论上讲,这个方案可以记录到树所需要的深度

如果使用JSON,则需要开发一个方案来记录对象。我只是在Wiki中列出了可能的属性作为文档。这对于简单的对象树很有效,但对于更大、更复杂的对象可能会变得复杂。在这种情况下,你可以考虑补充一些类似IDL或WebIDL的东西。(不会比XML DTD和模式差太多。;-)

DHTML代码在其文档中更为经典。您可以使用类似于创建JavaDoc样式文档的工具。只有一个警告。Javascript代码不适合在代码中记录。如果没有其他原因,那就是下载量过大。但是,您可能会发现自己经常编写作为内聚对象运行的代码,而不是在幕后作为这样的对象进行编码。因此,最好的解决方案是创建表示和记录Javascript对象的JSDoc框架文件

如果您使用的是GWT,那么编写文档应该是一件轻而易举的事情

查看下面的链接。如果您熟悉struts,那么条纹对您来说是有意义的,但它要好得多。他们的网站上有一个栏目。你可以检查一下,看看你是否感兴趣。它可以让你