2009-07-09 54 views
1

这涉及到这样一个问题:将jsp文件转换为Django模板?

how-can-i-port-a-legacy-java-j2ee-website-to-a-modern-scripting-language

但较窄的焦点。

由于各种原因,我们基本上重写了遗留Java应用程序,但试图保持用户界面几乎相同。

在其中一个答案,有人说:

选择代表页面和返工他们到相应的模板。你可能会使用一些遗留的JSP页面。但是,不要浪费太多时间。使用HTML创建Django模板。

的事情是,应用具有大约15个不同的“头版”,其中的每一个主要是由〜100 jsp文件适当混合&匹配子集。我相信在jsp文件中分割内容可能是我想用于Django模板的分区;因此我宁愿将它们转换为模板,而不是从HTML开始,然后重新进行确定正确分区的工作。

所以,我真的希望有一个合理的方式来做这种转换。

我是一个Django新手&从未使用javascript工作(寿在我的球队其他人有),所以任何帮助,将不胜感激:如果你能推荐一个自动化或半自动化的工具,还是建议一个基本的方法,提示&技巧,建议,恐怖故事..

在此先感谢!

响应维奈的答案编辑:

我认为这是相当香草jsp中,有没有涉及第三方库。 有脚本,但它们被很好地分隔到自己的文件中。

在这一点上,我想我们想要一些快速的东西,我们可以改进 以后再做最佳实践。

关于EXTENDS和INCLUDE,这让我觉得我们应该仔细考虑我们的头版的设计,至少;但 可以采取最小努力的方式来转换这些小片段中的一些。

+0

哎唷,什么任务! – AlbertoPL 2009-07-09 05:28:09

+0

是啊,这听起来不愉快。 – seth 2009-07-09 19:54:35

回答

0

你可能会隐藏起来 - 它肯定会取决于细节,您使用第三方库和自定义JSP标记。你只是想在Django中以最少的工作来实现它,还是想让完成的网站反映出Django的最佳实践?例如,在Django中,通常使用extends功能设计模板 - 尽管Django的标签类似于<jsp:include/>,但看起来更经常的是extends,而include的频率要低得多。在JSP世界中,extends功能不是vanilla JSP的一部分,并且使用第三方库实现。 SiteMesh或Tiles。

如果我面临的任务是“快速找到可行的东西!“,我的第一个方法是处理一个Python脚本,它解析所有的JSP文件(使用基于正则表达式的相当简单的解析器),并抛出相应的Django模板文件,并标记出难题。不会很漂亮,它不会做得很好,但它会是系统的,你会得到一个需要手工完成的事情的清单(例如需要实现的模板标签)。这种方法的增加值与JSP代码是多么整齐和系统的多少成正比,不管你是否使用scriptlets,等等。