配置过程
在项目上点击右键,选MyEclipse-Project Facets-Install Apache Struts (2.x) Facet
接着是这样,不用做什么,直接下一步:
这里要注意,URL pattern默认是选的 * .action,这里要改成 / *,否则在form中指定action时必须加上.action后缀。
然后配置一些包,Core包已经被选中,一般也不用别的了,finish 就好。(我看到书上说要整合Spring的话,之后需要一个spring-plugin的包,然后这里刚好有一个 Spring Plugin 的选项,就直接选了,结果各种崩溃,action 怎么都打不开,重新建了项目,然后到这步的时候没选 Spring Plugin 才好。)
现在 Struts2 就已经配置好了,web.xml 中会多出这样的代码:
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后我们在 src 下建立一个 actoin 的包放 action,我这里建了一个LoginAction,具体过程就不说了,想说一下 struts.xml 的配置。
配置的 struts.xml 文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="login" class="action.LoginAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
这里强调一下 < action name=”login” class=”action.LoginAction” > 这句,class一定要写正确,如果错了,直接 jsp 都进不了,可能是编译的时候都没通过。(吐槽一下MyEclipse,这都不给提醒一下,找半天才发现)。
大概就是这样,希望能帮到遇到同样问题的人。
又出现一点问题,出现这样的异常 java.lang.NoSuchMethodError: antlr.collections.AST.getLine(),这是由于Struts自带的antlr-2.7.2.jar和Hibernate3.3自带的antlr-2.7.7.jar 有冲突,可以删掉 Struts 的 antlr-2.7.2.jar,在MyEclipse-Preferences-Project Librarys,找到 Struts 的 core 中的 antlr-2.7.2.jar,取消勾选就好。