就是因为搜不到所以才分享出来。并不是到处能搜到的如下解决方案:
右击项目->properties->找到Deployment Assembly,右边便是编译打包的配置,看是不是缺少了lib库的依赖,我的就是,点击Add,添加maven依赖库。最后列表如下。
如上的方案,我自己看了一下,本身就是这样的,都不用设置,重设了一次,也无效。报测错误就是访问jsp时报错,大致就是:
http://java.sun.com/jsp/jstl/core 在 web.xml 中找不到对应的说明 之类的错误。因为我的jsp中以开始就引用了这个 c 标签嘛。
想来想去,应该还是我的 eclipse 项目在tomcat 下是直接以目录映射项目的方式进去访问的,而这种方式和 myeclipse 的最大差异就是:它不是把项目整体编译好之后,复制到 tomcat 的 webapps 目录下的。那么,在映射时,就硬性的需要 WEB-INF/lib 目录下得有 jar 文件,否则,访问所有的相关功能时,就会报错。
故而,如果先经过了处理逻辑,则依赖的 jar 就会因为找不到而报对应的错,而如果是空逻辑转向 jsp 去跑,则就会报 标签库找不到对应jar的错误。
想到的如上的原则,那么来解决它就好了,找了一下,maven 正好有相关的 copy 插件,在 pom.xml 中 插件部分引入如下代码即可:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>clean</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>src/main/webapp/WEB-INF/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
这段代码的含义,就是在执行 maven 的 clean 阶段,把所有配置的依赖jar,直接复制到项目的 lib 目录下。根据含义,clean 一下项目,发现 jar 已经全部过去了,再把项目加入到 tomcat,启动访问之。OK,一切正常了,问题解决。