Eclipse Web Tools Project是否处理JSP内部的重构?

时间:2009-02-11 18:55:34

标签: java eclipse jsp refactoring eclipse-wtp

我已经为Eclipse 3.4版安装了Web Tools Project。我一直在尝试按照我认为的方式进行重构,并且没有成功。

我有一个Java项目,其中包含放入/ WEB-INF / lib网站的jar的Java类。另一个项目(动态Web项目)具有同一站点的JSP文件。动态Web项目使用Java项目作为构建路径中的必需项目进行设置。我还为Dynamic Web项目设置了Project References选项以引用Java Project。

如果我使用重构来更改其中一个Java类中的方法名称,我希望可以重命名JSP中对该方法的引用。但它不起作用。 Java项目中包含类和其他使用该类的Java项目的引用已更改引用,但不是对JSP内部方法的引用。

我一直在摆弄它好几天,尝试不同版本的Eclipse和WTP。删除我的所有项目和文件并重新设置它们。没有任何区别。

这对其他人有用吗?我需要设置一些特殊功能来实现这项功能吗?

4 个答案:

答案 0 :(得分:2)

我对WTP(或任何日食的味道)如何处理JSP文件中的scriptlet块中的Java代码的经验一直很糟糕:它永远不会运行良好或者你期望的方式。我已经看到Eclipse在JSP文件的中间添加<jsp:import>语句,并执行所有其他类型的奇怪格式化。

我唯一的建议是远离编辑Eclipse内部JSP中的代码。

(我的另一条建议是将Java代码直接放在JSP文件中,转移到MVC架构,但那是另一天的主题......)

答案 1 :(得分:2)

对不起,这不是直接回答你的问题,但仍解决你的问题...也许有帮助,否则请忽略:

正如matt b建议的那样,你不应该将java代码放在jsp中。相反,“简单地”使用标签。如果你正在使用standard tag library,几乎所有你需要的东西。对于您必须自己处理的事情,一旦您知道标签的内容,就可以非常简单地编写自己的标签。

通过这个技巧,您将获得更好的应用程序(视图)架构,测试机会(希望您喜欢它们),坚持DRY(不要重复自己)原则并将所有Java代码放在.java文件中,以便它们很容易被任何工具选中。

甚至还有一个选项可以让web.xml强制禁用脚本,让代码保持正常工作,但是如果你已经对脚本化的jsps进行了大量投资,那么这可能不是你需要的......

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

你没有问过的问题的另一个答案是IntelliJ Idea处理你谈得很好的场景(虽然我每天都在使用eclipse,这是两个IDE之间的差异之一)< / p>

答案 2 :(得分:2)

请为此投票here。或者创建一个新的更具体的功能请求。在该链接中,您可以看到有很多关于重构和JSP的问题,但只有少数人知道如果他们投票给他们,他们更有可能在下一个eclipse版本中实现。

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

答案 3 :(得分:0)

也许我没有正确地理解你,但听起来你在尝试重构之前将这些课程放在了Jar或War中。重构适用于当前项目,而不适用于构建路径中的任何内容。

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