进入我们基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发的最后一个阶段了,这阶段主要为我们的项目引进Struts2的Annotation。相对于带Annotation的Hibernate与带Annotation的Spring整合来说,带Annotation的Struts与带Annotation的Spring整合还是比较容易实现的。
我们先来引进Struts2.0的相关jar包:xwork-2.0.5.jar,struts2-core-2.0.11.2.jar,ognl-2.6.11.jar,commons-logging.jar(这个前面已引进),freemarker-2.3.8.jar,还有Struts2.0与Spring整合所需的struts2-spring-plugin-2.0.11.2.jar。好,马上来开发我们的用户注册小例子。
register.jsp注册页的部分代码如下:
<s:form action="register">
<s:textfield name="username"/>
<s:password name="password"/>
<s:submit value="注册"/>
</s:form>
<s:fielderror></s:fielderror>
success.jsp注册成功页部分代码如下: 注册成功!你好,<s:property value="username"/>!
好,来开发我们的控制层吧。写个RegisterAction.java的类:
package com.rong.action;
import javax.annotation.Resource;
import org.apache.struts2.config.ParentPackage;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.rong.entity.User;
import com.rong.service.UserService;
@Controller @Scope("prototype") //声明此类为控制层的类,且为prototype模式调用
@ParentPackage(value="struts-default")
@Results({
@Result(name="success",value="success.jsp"),
@Result(name="input",value="register.jsp")
})
public class RegisterAction extends ActionSupport {
@Resource(name="userService")
private UserService userService;
private String username;
private String password;
@Override
public String execute() throws Exception {
User user = new User();
user.setUsername("rongxinhua");
user.setPassword("blogjava");
userService.save(user);
return SUCCESS;
}
public String getUsername() {
return username;
}
@RequiredStringValidator(message = "请输入用户名!")
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
@RequiredStringValidator(message = "请输入密码!")
public void setPassword(String password) {
this.password = password;
}
}
Spring2.5通过@Controller @Scope("prototype") 这样的注解,将Struts的Action纳为自己的控制范围之内。Struts2.0自带的@ParentPackage和@Results等注解,注明了要继承的父包和响应结果。还有@RequiredStringValidator,@RequiredFieldValidator等注解,大大方便了我们处理表单信息的校验。大家有没有发觉少了什么?我们不需要Struts.xml的配置文件了,也不需要xxx-validation.xml,也不需要写烦杂的验证代码了。岂不是很方便吗?
不过,不要忘记了,我们还得在web.xml中配置Struts2:
<!-- 配置Struts 2.0 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.rong.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> 我们init了一个参数actionPackages,表示我们的请求到哪里寻找我们的action。举例说,我们的用户注册action="register",它默认会在com.rong.action包下寻找RegisterAction类。经过action的处理后,若返回success,则会跳到success.jsp,若校验不通过,则返回input,则请求转发回register.jsp。
好了,看看运行效果吧!
成功啦!我们基于Annotation的SSH整合开发终于完成了。我所介绍的Annotation注解其实并不多,还得靠大家找资料去学习。而我们侧重点是在用Annotation时三大框架是如何整合起来的。
说点题外话吧,我们在开发过程中,究竟用Annotation还是XML,许多人曾问这样的问题。有培训机构的老师说过一句话,Annotation可以用,但XML配置一定要懂,因为XML配置现在还是主流。他说得也挺有道理的。有些人可能还不能接受Annotation这东西,就像我当初不大喜欢它一样。我的一位教我们Java中间件的老教师说:“Struts,Spring,Hibernate算什么技术?学EJB才是有用的。”他教我们的好像是EJB2版本的,他年轻时用Jbuilder开发过EJB的项目。如果我问他“为什么不选EJB3.0”,他会不会说:“EJB3被改得一塌糊涂,什么注解啊,改得狗屁不通,还是EJB2的最好……”。当然,我没有再问他。有时候,新事物要被人们所接受,是要经历一段时间的,世界在变,知识在变,我们何不用更宽广的心态,去接受那些新生的事物?
(*^-^*) 本文原创,转载请注明出处, http://www.blogjava.net/rongxh7谢谢! (*^-^*)
本文原创,转载请注明出处,谢谢!http://www.blogjava.net/rongxh7(心梦帆影JavaEE技术博客)
分享到:
相关推荐
【基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发】 这篇文档主要介绍了一个使用注解(Annotation)进行Struts2.0、Hibernate3.3和Spring2.5整合开发的教程。这种集成方式相比传统的XML配置,可以简化...
标题中的“基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合开发”指的是使用注解的方式将三个流行的Java企业级框架——Struts2、Hibernate和Spring进行集成开发。这样的集成有助于简化配置,提高代码的可读性...
Struts1.3、Hibernate3.3和Spring3.0是经典的Java企业级开发框架,它们的整合在早期Web应用开发中非常常见。这三种框架的结合提供了模型-视图-控制器(MVC)架构、对象关系映射(ORM)以及依赖注入(DI)和面向切面...
Struts2.0、Hibernate3.0和Spring2.0是Java Web开发中经典的三大框架,它们的整合是企业级应用开发的常见实践。Struts2作为MVC(Model-View-Controller)框架,主要负责处理HTTP请求并调度业务逻辑;Hibernate是一个...
Struts2.1、Spring 2.5 和 Hibernate 3.2 是经典的Java Web开发框架组合,用于构建高效、可维护的企业级应用。这个详细例子将深入探讨如何使用这三个框架协同工作,实现数据库的增(Add)、删(Delete)、改(Modify...
Struts1.3、Spring2.5 和 Hibernate3.3 是经典的 Java Web 开发框架组合,它们在企业级应用中广泛使用。这个组合被称为“SSH”(Struts-Spring-Hibernate),它允许开发者构建可扩展且松耦合的后端系统。在本项目中...
1 基于SSH,service采用 annotation注入减少配置 2 利用struts2 的LoginAction-validation.xml 3 在bean里把service包;暴露DWR,写了一个验证用户名的流程 4 采用jpa作为POJO,还是减少配置 5 加入display的分页,并且...
这个“基于Struts2.18+Spring2.5+Hibernate3.3+Annotation注解开发的电子商务网站demo”是一个很好的学习资源,可以帮助开发者加深对这些框架的理解并熟悉实际应用。 1. **Struts2.18**:Struts2是MVC(模型-视图-...
整合S2SH+Freemarker+oscache,后台用Spring管理各个bean,Hibernate做数据库持久化,viewer用Freemarker。整合中对Struts2,Hibernate,Spring都采用Annotation进行注解类。
整合S2SH+Freemarker,后台用Spring管理各个bean,Hibernate做数据库持久化,viewer用Freemarker。整合中对Struts2,Hibernate,Spring都采用Annotation进行注解类。
在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境进行配置。 **1. Java8**: 作为项目的运行基础环境,确保已安装Java8,并正确设置JAVA_HOME等环境变量。 **2....
本文档主要介绍了如何在MyEclipse 8.6环境中搭建一个基于Struts2.1、Spring3.0和Hibernate3.3的Java Web应用开发环境。以下是各个部分的详细说明: 1. 创建Web Project项目 在MyEclipse中创建Web Project是开始...
SSH三大框架,即Struts、Spring和Hibernate,是Java Web开发中的常用技术组合,它们各自负责不同的职责:Struts作为MVC模式中的Controller层,处理用户请求并转发到相应的业务逻辑;Spring则作为核心容器,负责依赖...
总之,"Struts2+Spring2.5+Hibernate3+annotation"的整合是Java Web开发中的经典组合,利用注解可以显著提升开发体验,减少配置文件的复杂性,使得项目结构更加清晰。如果你希望深入了解Java Web开发或者优化现有...
超级详细的SSH2项目实例详解,并且附带两个项目详解。两种注解实现方式。...在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过二个实例,详细的为大家讲解如何实现全注解式的开发。