我已经为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。删除我的所有项目和文件并重新设置它们。没有任何区别。
这对其他人有用吗?我需要设置一些特殊功能来实现这项功能吗?
答案 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中。重构适用于当前项目,而不适用于构建路径中的任何内容。
如果我误解了你的问题,我道歉。