本文主要讲解webwork与spring的集成.
有人说有了webwork就没有必要和spring集成.
也有人说webwork和spring集成起来功能更加强大.
本人同意上述两个观点,本文觉得webwork没有必须要和spring集成,当然我这里仅指springMVC,webwork本身就是一个很好的MVC实现.而webwork可以和spring除SpringMVC以外其的组件集成,像spring的持久层组件.更多的本人也不敢发表言论,大家如果感兴趣可以到网上找找相关的资料.
提示:为了减少视频的录制时间,减少上传文件的空间.本文也是在上几个视频的基础上进行改动.所以在阅读本文之前请先参考上几个视频.可以在本博客上直接下载,webwork国际化这节.<o:p></o:p>
Webwork集成spring
1. 修改 web.xml,为 Web 应用增加相应的 Spring ContextLoaderListener <o:p></o:p>
xml 代码- xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <servlet>
- <servlet-name>webworkservlet-name>
- <servlet-class>
- com.opensymphony.webwork.dispatcher.ServletDispatcher
- servlet-class>
- servlet>
- <servlet-mapping>
- <servlet-name>webworkservlet-name>
- <url-pattern>*.actionurl-pattern>
- servlet-mapping>
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- listener-class>
- listener>
- web-app>
java 代码
- package com.lyx.service;
- import com.lyx.bo.User;
- public interface IUserService {
- public boolean isValidUser(User user);
- }
- }
java 代码
- package com.lyx.service;
- import com.lyx.bo.User;
- public class UserService implements IUserService {
- public boolean isValidUser(User user) {
- if (user.getUserName().equals("lyx") && user.getUserPwd().equals("lyx"))
- return true;
- else
- return false;
- }
- }
4.修改xwork.xml配置文件<o:p></o:p>
xml 代码
- >
- <xwork>
- <include file="webwork-default.xml" />
- <package name="action" extends="webwork-default">
- <action name="login" class="login">
- <result name="success" type="dispatcher">
- <param name="location">/success.jspparam>
- result>
- <result name="error" type="dispatcher">
- <param name="location">/error.jspparam>
- result>
- <result name="input" type="dispatcher">
- <param name="location">/index.jspparam>
- result>
- <interceptor-ref name="model-driven" />
- <interceptor-ref name="params" />
- <interceptor-ref name="validationWorkflowStack" />
- action>
- package>
- xwork>
5) 添加 spring 框架到项目中
修改 applicationContext.xml 文件,加入 UserServiceImpl 的配置信息<o:p></o:p>
xml 代码
- xml version="1.0" encoding="UTF-8"?>
- >
- <beans>
- <bean id="userService" class="com.lyx.service.UserService" singleton="false"/>
- <bean id="login" class="com.lyx.web.action.LoginAction" singleton="false" >
- <property name="userService">
- <ref bean="userService"/>
- property>
- bean>
- beans>
注意:这里的红色字体login一定要和xwork配置文件中的login一样.<o:p></o:p>
6) 修改 Action <o:p></o:p>
java 代码
- LoginAction.java
- package com.lyx.web.action;
- import com.opensymphony.xwork.Action;
- import com.opensymphony.xwork.ActionSupport;
- import com.opensymphony.xwork.ModelDriven;
- import com.test.services.IUserService;
- public class LoginAction extends ActionSupport implements Action,ModelDriven {
- private User user = new User();
- private IUserService userService;
- public User getUser() {
- return user;
- }
- public String execute() throws Exception {
- if (userService.isValidUser(user))
- return this.SUCCESS;
- else
- return this.ERROR;
- }
- public Object getModel() {
- return user;
- }
- public void setUserService(IUserService userService) {
- this.userService = userService;
- }
- }
<o:p></o:p>