6

我已经为 Eclipse 版本 3.4 安装了 Web 工具项目。我一直在尝试按照我认为应该的方式进行重构,但没有成功。

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

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

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

这对其他人有用吗?我需要设置什么特别的东西才能让它工作吗?

4

4 回答 4

2

我对 WTP(或任何 Eclipse 风格)如何处理 JSP 文件中的 scriptlet 块中的 Java 代码的经验一直很糟糕:它永远不会像您期望的那样工作得很好。我已经看到 Eclipse<jsp:import>在 JSP 文件的中间添加语句,并执行所有其他类型的奇怪格式化。

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

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

于 2009-02-11T20:04:42.807 回答
2

抱歉,这不是直接回答您的问题,而是解决您的问题……也许有帮助,否则请忽略:

正如 matt b 建议的那样,您不应该将 java 代码放在 jsp 中。而是“简单地”使用标签。如果您使用的是标准标签库,那么您需要的几乎所有东西都在那里。对于您必须自己处理的事情,一旦您知道标签是关于什么的,编写自己的标签就非常简单。

通过这个技巧,您将获得更好的应用程序(视图)架构、测试机会(希望您喜欢它们)、遵守 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 之间的区别之一)

于 2009-02-12T20:48:14.517 回答
2

请在此处投票支持此操作。或者创建一个新的更具体的功能请求。在该链接中,您可以看到有关重构和 JSP 的许多问题,但只有少数人知道,如果他们投票支持它们,它们更有可能在下一个 Eclipse 版本中实现。

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

于 2009-04-24T15:46:18.337 回答
0

也许我没有正确理解您,但听起来您在尝试重构之前将类放入 Jar 或 War 中。重构是针对当前项目的,而不是针对构建路径中的任何内容。

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

于 2009-02-11T19:20:19.043 回答