我已经安装了Eclipse版本3.4的Web工具项目。我一直在尝试让重构以我认为应该的方式工作,但没有成功。
我有一个Java项目,其中包含jar的Java类,该jar被放入web站点的/WEB-INF/lib中。另一个项目(动态Web项目)具有同一站点的JSP文件。动态Web项目与Java项目一起设置为构建路径中的必需项目。我还将动态Web项目的Project References选项设置为引用Java项目。
如果我使用重构来更改某个Java类中的方法名称,那么在JSP中对该方法的引用将被重命名。但它不起作用。包含类的Java项目中的引用以及使用该类的其他Java项目中的引用都会被重构,但不会重构对JSP中方法的引用。
我已经摆弄它好几天了,尝试了不同版本的Eclipse和WTP。删除我的所有项目和文件,并重新设置它们。没有任何区别。
这对其他人有效吗?我需要设置什么特殊的东西才能让它工作吗?
发布于 2009-02-12 20:48:15
很抱歉,这并没有直接回答你的问题,但却解决了你的问题…也许它有帮助,否则请忽略:
正如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之间的区别之一)。
发布于 2009-02-11 20:04:43
关于WTP (或任何类型的Eclipse)如何处理JSP文件中scriptlet块中的Java代码,我的经验总是很糟糕:它从来都不能很好地工作,也不会以您期望的方式工作。我见过Eclipse在JSP文件中间添加<jsp:import>
语句,并进行其他各种奇怪的格式化。
我唯一的建议是,不要在Eclipse中编辑JSP中的代码。
(我的另一条建议是而不是将Java代码直接放在JSP文件中,并转移到MVC架构,但这是另一天的主题……)
发布于 2009-04-24 15:46:18
请投票支持这是可能的here。或者创建一个新的更具体的功能请求。在该链接中,您可以看到有关重构和JSP的许多问题,但只有少数人意识到,如果他们投票支持它们,它们更有可能在下一个eclipse版本中实现。
请在使用之前复制并修复链接,因为它已损坏。"+“变成了"%2B”。下面是正确的链接:https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=jsp+refactor
https://stackoverflow.com/questions/538239
复制相似问题