代码之家  ›  专栏  ›  技术社区  ›  Skip Head

Eclipse Web工具项目是否处理JSP内部的重构?

  •  6
  • Skip Head  · 技术社区  · 16 年前

    我已经安装了Eclipse 3.4版的Web工具项目。我一直在努力让重构按照我认为的方式工作,但没有成功。

    我有一个Java项目,它包含JAR的Java类,它被放入Web站点的/WebINF/LIB中。另一个项目(动态Web项目)具有相同站点的JSP文件。动态Web项目是在构建路径中以Java项目作为必需项目而建立的。我还设置了动态Web项目引用Java项目的项目引用选项。

    如果我使用重构来改变一个Java类中的方法名,我会预期对JSP中的方法的引用会被重命名。但它不起作用。包含该类的Java项目中的引用和使用该类的其他Java项目具有更改的引用,但不引用对JSP内部的方法的引用。

    我已经花了好几天时间摆弄它,尝试不同版本的Eclipse和WTP。删除所有项目和文件,然后重新设置它们。没有什么区别。

    这对其他人有用吗?我有什么特别的事情要做吗?

    4 回复  |  直到 12 年前
        1
  •  2
  •   Olaf Kock    12 年前

    抱歉,这不是直接回答您的问题,但仍然可以解决您的问题…可能有帮助,否则请忽略:

    正如Matt B所建议的,您不应该将Java代码放置在JSP中。相反,“简单”地使用标签。如果你在使用 standard tag library 几乎所有你需要的东西。对于你必须自己处理的事情,一旦你知道标签是关于什么的,就很容易写下你自己的标签。

    通过这个技巧,你将得到一个更好的应用程序(View)架构、测试机会(希望你喜欢它们)、坚持干(不要重复你自己)的原则并将所有Java代码放在.java文件中,这样它们就很容易被 任何 工具。

    web.xml甚至还有一个选项可以强制禁用脚本,让标记继续工作,但是如果您已经在脚本化JSP上投入了大量资金,那么这可能不是您需要的……

    <jsp-config>
      <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <scripting-invalid>true</scripting-invalid>
      </jsp-property-group>
    </jsp-config>
    

    另一个你没有问到的问题的答案是,intellij的想法很好地处理了你所谈论的场景(尽管我每天都在使用Eclipse,这是两个IDE之间的区别之一)。

        2
  •  2
  •   matt b    16 年前

    我在WTP(或任何口味的日食)中如何处理JSP文件中的Script小程序块中的Java代码的经验一直是可怕的:它从来没有很好地工作或你所期望的方式。我看过Eclipse Add <jsp:import> 语句位于JSP文件的中间,并执行所有其他奇怪的格式设置。

    我唯一的建议是不要在Eclipse内的JSP中编辑代码。

    (我的另一个建议是 将Java代码直接放在JSP文件中,然后移动到MVC体系结构,但这是另一天的主题……

        3
  •  2
  •   Luxspes    16 年前

    请投票决定是否可行 here . 或者创建一个新的更具体的功能请求。在这个链接中,您可以看到关于重构和JSP的问题很多,但是只有少数人知道,如果他们投票支持他们,他们更有可能在下一个Eclipse版本中实现。

    请在使用前复制并修复链接,因为链接已损坏。“+”变为“%2b”。以下是正确的链接: https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=jsp+refactor

        4
  •  0
  •   community wiki WolfmanDragon    16 年前

    也许我对你的理解不正确,但听起来你是在试图重构之前把类放在一个罐子或一场战争中。重构是针对当前项目的,而不是针对构建路径中的任何内容。

    如果我误解了你的问题,我道歉。