免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1338 | 回复: 0
打印 上一主题 下一主题

Struts2+Spring+Hibernate In Action(三) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-23 14:14 |只看该作者 |倒序浏览

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 代码
package com.leo.controller;   
   
import static com.leo.constants.LoginStauts.USER;   
   
import java.util.Map;   
   
import javax.servlet.http.HttpServletRequest;   
   
import org.apache.log4j.Logger;   
import org.apache.struts2.interceptor.ServletRequestAware;   
import org.apache.struts2.interceptor.SessionAware;   
   
import com.leo.po.User;   
import com.opensymphony.xwork2.Preparable;   
   
public class UserController extends BaseController implements   
        ServletRequestAware, SessionAware, Preparable {   
   
    private static Logger logger = Logger.getLogger(UserController.class);   
   
    private static final long serialVersionUID = 1L;   
   
    private final String url = "listUsers.action";   
   
    private final String urlByName = "findUser.action";   
   
    private HttpServletRequest request;   
   
    private Map session;   
   
    public void setServletRequest(HttpServletRequest req) {   
        this.request = req;   
   
    }   
   
    public void setSession(Map session) {   
        this.session = session;   
    }   
   
    /** *****************用户属性************************** */   
   
    private User user;   
   
    public void setUser(User user) {   
        this.user = user;   
    }   
   
    public User getUser() {   
        return user;   
    }   
   
    /** **************************************************** */   
   
    public String index() {   
        return SUCCESS;   
    }   
   
    public String userCRUDAction() {   
        return SUCCESS;   
    }   
   
    /**   
     * 用户登录   
     *   
     * @return   
     */   
    public String login() {   
        logger.info("名字为:" + user.getName());   
        User temp = this.getUserService().findByNameExact(user.getName());   
        if (temp == null) {   
            addActionMessage("用户名错误,请重新输入!");   
            return INPUT;   
        } else {   
            if (!temp.getPassword().equals(user.getPassword())) {   
                addActionMessage("密码错误,请重新输入!");   
                return INPUT;   
            }   
        }   
   
        session.put(USER, temp);   
        logger.info("登录成功......");   
        return SUCCESS;   
    }   
   
    /**   
     * 用户注销   
     *   
     * @return   
     */   
    public String logout() {   
        logger.info("USER is: " + USER);   
        if (session.containsKey(USER.toString())) {   
            logger.info("运行到这里了吗?");   
            session.remove(USER);   
        }   
        return SUCCESS;   
    }   
   
    /**   
     * 如果扩展项目,进行CRUD时,可能有用。   
     */   
    public void prepare() throws Exception {   
   
    }   
   
}   
在这个类的存放路径下,我还配置了一个验证文件。
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的使用和发送邮件了。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/55983/showart_1333324.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP