Google Desktop search proposed an end to this problem, but then flubbed(!) it by setting limits on what files to index. Under Google Desktop searching, only Google's ideas of documents are searched. Google's idea of documents does not include .java files.
However, Copernic does. There's an advanced tag in the preference dialog box where you can specify additional text file types to index. My list looks like ".jhtml;.xml;.xsl;.jsp;.html;.jspf;.java;.dtd;.properties" which is 90% of the files I work with on a daily basis.
The amazing thing about Copernic is not that it works. It's that it changes how I work. Suddenly, finding a Dynamo component is no longer a PITA. I just go to the config directory, unjar the config.jar file so that all the .properties files are available to the filesystem, and let Copernic index them. If I want to find out where the PaymentGroupFormHandler is referenced, I can just type in one word and all the places it's referenced show up. If I specify a filetype of .properties, then only the components (and the file itself) show up. No more worrying about hidden dependencies or secret configuration changes -- it's all there in less than a second.

The same thing applies to JSP, XML, and even Java files in general. I only have to remember a few details about the file to find out where it is, and I don't have to go trawling through directories for it.
Howe big are indexes? It may be of concern if you have small HD in a laptop.
If you like that sort of capability, you would probably also like Juliet:
http://infotectonica.com/juliet/tour/
It basically lets you navigate your code as if it were javadoc, and is context-aware in other handy ways. Also works fine with zip & jar.