3. Controller配置:
Struts2的配置方法不用多说,只需要导入相应的包后,在web.xml里配置:
xml 代码
- <filter>
- <filter-name>struts2filter-name>
- <filter-class>
- org.apache.struts2.dispatcher.FilterDispatcher
- filter-class>
- filter>
-
-
- <filter-mapping>
- <filter-name>struts2filter-name>
- <url-pattern>/*url-pattern>
- filter-mapping>
就可以正常使用了。但这个项目,因为与Spring集成了,所以与Spring有关的插件包也必须放在项目的WEB-INF\lib下面。
在这里Struts2解决的是用户登录的问题,代码非常简单。
UserController.java
java 代码
在这个类的存放路径下,我还配置了一个验证文件。
UserController-userAction-validation.xml
xml 代码
- <!---->
- "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
- <validators>
- <field name="user.name">
- <field-validator type="requiredstring">
- <message>用户名不能为空.message>
- field-validator>
- field>
- <field name="user.password">
- <field-validator type="requiredstring">
- <message>密码不能为空.message>
- field-validator>
- field>
-
- validators>
-
这里起名叫UserController-userAction-validation.xml的目的是只想验证UserController.java的和userAction方法。包括
userAction,userAction!** 。以免出现验证在使用过程中出现烦人的干扰问题。
最后在struts.xml里配置一下UserController,同时也需要在Spring中注册这个Bean,因为与Spring集成后,Spring已经成为了工厂。
这两个配置文件都很简单:
user.xml
xml 代码
- <!---->
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
-
- <package name="user" extends="default">
- <action name="userCRUDAction"
- class="com.leo.controller.UserController" method="userCRUDAction">
- <result name="success">login.jspresult>
- <result name="input">login.jspresult>
- action>
-
- <action name="index" class="com.leo.controller.UserController"
- method="index">
- <result name="success">login.jspresult>
- <result name="input">login.jspresult>
- action>
-
- <action name="login" class="com.leo.controller.UserController"
- method="login">
- <result name="success">welcome.jspresult>
- <result name="input">login.jspresult>
- action>
-
- <action name="logout" class="com.leo.controller.UserController"
- method="logout">
- <result name="success">login.jspresult>
- <result name="input">login.jspresult>
- action>
-
- package>
-
- struts>
注意:user.xml被包含在struts.xml里,目的是便于模块化编程。并且使用了Struts2的包继承,下面是struts.xml的配置:
xml 代码
- <!---->
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
- <include file="struts-default.xml" />
- <package name="default" extends="struts-default">
- <interceptors>
- <interceptor-stack name="strutsStack">
- <interceptor-ref name="exception" />
- <interceptor-ref name="alias" />
- <interceptor-ref name="servlet-config" />
- <interceptor-ref name="prepare" />
- <interceptor-ref name="i18n" />
- <interceptor-ref name="chain" />
- <interceptor-ref name="debugging" />
- <interceptor-ref name="profiling" />
- <interceptor-ref name="scoped-model-driven" />
- <interceptor-ref name="model-driven" />
- <interceptor-ref name="fileUpload" />
- <interceptor-ref name="checkbox" />
- <interceptor-ref name="static-params" />
- <interceptor-ref name="params" />
-
- <interceptor-ref name="validation">
- <param name="excludeMethods">
- input,back,cancel,browse
- param>
- interceptor-ref>
- <interceptor-ref name="workflow">
- <param name="excludeMethods">
- input,back,cancel,browse
- param>
- interceptor-ref>
- interceptor-stack>
- interceptors>
- <default-interceptor-ref name="strutsStack" />
- package>
-
- <include file="struts_xml/user.xml" />
-
- struts>
那么相应的Spring配置就是:
xml 代码
- <bean id="userAction" class="com.leo.controller.UserController"
- scope="prototype">
- <property name="userService" ref="userService" />
- bean>
其中userService是前面已经注册过的Service Bean了。接下来就是关于DWR的使用和发送邮件了。