- 浏览: 633862 次
- 性别:
- 来自: 北京
最新评论
-
2047699523:
java hibernate demo使用实例教程源代码下载: ...
hibernate延迟加载的原理与实现 -
在世界的中心呼喚愛:
hantsy 写道这种lazy的解释只对了一半,按java p ...
hibernate延迟加载的原理与实现 -
moguicy:
看了下时间,不是楼主是否还在开发
【翻译】Wicket启示录——理论与实践(一) -
xfan0828:
"最后但并不是最不重要的一点就是" BZ, ...
【翻译】深入浅出 EJB3.1(上) -
doudou87323:
十分感谢,正在学习中,受益匪浅
【翻译】深入浅出 EJB3.1(上)
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的使用和发送邮件了。
发表评论
-
自己动手写一个Struts2
2008-08-14 00:10 15259使用Struts2或webwork2有一段时间了,想把Stru ... -
Struts2(Webwork2)一些实战开发技巧
2008-06-02 21:18 5786一. 使用反射动态取出 Pojo 的属性 这一招在 ... -
Struts2的第一个入门实例(三)--Struts2与Guice整合
2008-02-15 14:29 9040Guice可真轻啊,所需的3个Jar包才不到600k。但缺点就 ... -
Struts2,Webwork2关于使用FCKeditor,richtexteditor 的解决方法
2008-01-31 00:18 4342一 Webwork2 + FCkeditor 这个问题由来 ... -
Struts2所有插件简介--目前到达40余种
2008-01-26 17:06 10750今天无意查看了Struts2的插件时,发现已经林林总总有40个 ... -
Struts2的第一个入门实例(二)--什么是code-behind
2008-01-13 19:26 8751Struts2的Code-behind究竟是什么?ROR那样的 ... -
Struts2.0.11在Tomcat5.5, Jetty 以及 Weblogic10等运行的不同
2008-01-06 22:53 5814终于有时间玩玩最新版本的Struts2.0.11了, 与上一个 ... -
struts2 奇怪的Action警告
2008-01-06 21:20 13017不知道大家有没有遇到在使用表单的时候,有时候会出一个莫名其妙的 ... -
经验不足,差一点重构整个系统
2007-12-30 19:36 3980呵呵,很久没有来JavaEye写文章了,公司工作也 ... -
Struts2+Spring+Hibernate In Action(四)
2007-11-01 01:43 5390第二部分: 1.DWR的配置: DWR是Java一个比较常用的 ... -
Struts2+Spring+Hibernate In Action(二)
2007-11-01 00:30 6048当所有的Service配置好了,可以当他们统统配置在Sprin ... -
原来是Struts2.0的一个Bug
2007-10-27 23:00 5556开始使用的是Struts2.06版本。在配置Struts.xm ... -
Struts2需要注意的一个小地方
2007-10-22 17:49 15953今天在运行Struts2时,无意间发现程序在写Struts.x ... -
Struts2的第一个入门实例(一)
2007-09-29 14:12 21023Struts2有自己的圈子了,我也写一个Struts2的 ... -
Struts2+Spring+Hibernate In Action(一)
2007-11-01 00:26 18126前言: 关于Struts2系列的文章网上基本上都有了,但鲜有 ... -
Struts2在路上2。。。。。。
2007-09-14 16:16 43232.关于关闭Struts2自动验证的烦人英文问题。 应该有不少 ... -
Struts2在路上。。。。。。
2007-09-12 14:25 54531.Struts2强大,但也有很多需要解决的问题。就拿我现在这 ...
相关推荐
Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf
经典的struts2+spring2+hibernate3编程。 实现为MySQL,带有技术说明文档,sql文档。 是学习struts2+spring2+hibernate3编程的经典案例。 核心为show.action
Java框架:Struts2+Spring+Hibernate
2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录...
架构技术: struts2+spring3+hibernate4 + UI 组件(easyui)+Spring_security权限 配置思想: Convention 零配置(不需要任何配置文件) 优点; [1].代码生成器(单表的增删改查完美生成) 注意:包括JSP页面的生成...
SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...
采用在web.xml中加载spring配置文件的方法降低struts和spring的耦合度,使用自定义的MyDelegatingRequestProcessor类来代替spring的DelegatingRequestProcessor类来解决spring中action的bean的重复配置问题。...
Struts2+Hibernate+Spring整合实例,登陆注册实例,简单来说,Spring通过IoC容器上管(Struts2)Action的创建并依赖注入给控制器,下管(hibernate)SessionFactory的创建并依赖注入给DAO组件,是一个巨大的工厂
12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...
总结,该例示注释非常详细,演示Spring托管Hibernate和Struts的Action, 以及Spring的事务声明(包括1.x与2.x的用法)与非事务声明的使用方式。 使用DWR可以方便的使用Spring托管的持久层功能。 目的:希望广大Java...
struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+hibernate+spring+ibatis 小实例struts2+...
struts2+spring+hibernate这个小项目实现了对Equipment的增删改查操作 对初学者有很大的帮助。完整版。包括了dao,action,domain,service,util。
一个Struts1.2+Spring2.5+Hibernate3.2+Jmesa2.4.3+JmesaTag实现的强大分页控件例子 里 面有action实现分页和标签实现分页2个例子 action实现的分页 包括了表头排序,导出为PDF,TXT, excel等格式 jar包和数据库...
SSH 为 struts2.4+spring3.1+hibernate4.1的一个集成框架,是目前较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建...
这是一个三层的web应用,通过Action(Struts)访问业务层,业务层访问DAO。图一简要说明了该应用的总体结构。图上的数字说明了流程 顺序-从web(UserAction)到中间层(UserManager),再到数据访问层(UserDAO),...
Struts in Action中文版+Spring in Action中文版+Hibernate in Action中文版,不好意思,还是没找到Hibernate in Action的第三章,大家见谅了。。
struts2+spring+hibernate,eclipse10.0+tomcat8.0,简单的登陆页面
maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...
Struts2提供了许多方法来创建Action类,并通过struts.xml中或通过注释进行配置。我们可以创建自己的拦截器实现常见任务。 Struts2中自带了很多的标签,并使用OGNL表达式语言。我们可以创造我们自己的类型转换器来...
JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...