必知的技术知识:HHS整合(Struts2+Spring+Hibernate)

简介: 必知的技术知识:HHS整合(Struts2+Spring+Hibernate)

一、搭建Struts2


  具体步骤可以参考Struts2官网 如何创建Struts 2 Web应用程序:


  1、在maven的pom.xml添加struts2-core的依赖节点


  [/span>dependency

"color: rgba(0, 0, 255, 1)"]

   [/span>groupId

   [/span>artifactId

   [/span>version

  

  2、添加日志记录


  log4j2.xml在src/main/resources包含以下内容的文件夹中设置配置


<?xml version="1.0" encoding="UTF-8"?>


[/span>Configuration

[/span>Appenders

[/span>Console name="STDOUT" target="SYSTEM_OUT"

[/span>PatternLayout pattern="%d %-5p 【%t】 %C{2} (%F:%L) - %m%n"/>




[/span>Loggers

[/span>Logger name="com.opensymphony.xwork2" level="debug"/>


[/span>Logger name="org.apache.struts2" level="debug"/>


[/span>Root level="warn"

[/span>AppenderRef ref="STDOUT"/>





  3、添加log4j依赖节点


[/span>dependency

[/span>groupId

[/span>artifactId

[/span>version


[/span>dependency

[/span>groupId

[/span>artifactId

[/span>version


  4、添加Struts2 servlet过滤器


    在web.xml中添加过滤器


<?xml version="1.0" encoding="UTF-8"?>


[/span>web-app id="WebApp_ID" version="2.4"


xmlns=""


xmlns:xsi=""


xsi:schemaLocation=" "

[/span>display-name

[/span>welcome-file-list

[/span>welcome-file


[/span>filter

[/span>filter-name

[/span>filter-class


[/span>filter-mapping

[/span>filter-name

[/span>url-pattern



  5、创建struts.xml核心配置文件,放在src/main/resources文件夹中


    在struts.xml文件中我们开启动态方法调用


<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE struts PUBLIC


"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"


""

[/span>struts

[/span>constant name="struts.devMode" value="true" />


[/span>constant name="struts.enable.DynamicMethodInvocation" value="true"/>


[/span>package name="basicstruts2" extends="struts-default" strict-method-invocation="false"

[/span>action name="index"

[/span>result




  这样我们的struts2就搭建好了


  6、Struts2的hello world 编写测试类


    struts.xml中配置action


<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE struts PUBLIC


"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"


""

[/span>struts

[/span>constant name="struts.devMode" value="true" />


[/span>constant name="struts.enable.DynamicMethodInvocation" value="true"/>


[/span>package name="basicstruts2" extends="struts-default" strict-method-invocation="false"

[/span>action name="index"

[/span>result


[/span>action name="test" class="com.blb.action.TestAction"

[/span>result name="success"




    编写测试类继承ActionSupport


package com.blb.action;


import com.opensymphony.xwork2.ActionSupport;


public class TestAction extends ActionSupport {


public String hello(){


return SUCCESS;


}


}


  运行项目,访问地址: localhost:8080/项目名/test!hello


  这样Struts2的环境就搭建完成了


二、搭建Spring


  1、在项目中添加spring-context依赖节点


[/span>dependency

[/span>groupId

[/span>artifactId

[/span>version


  因为是web项目,我们还需要导入spring-webmvc依赖


[/span>dependency

[/span>groupId

[/span>artifactId

[/span>version


  2、创建applicationContext.xml核心配置文件,放在src/main/resources文件夹中


<?xml version="1.0" encoding="UTF-8"?>


[/span>beans xmlns=""


xmlns:xsi=""


xsi:schemaLocation="


"


  3、在web.xml文件中添加spring监听,使spring在程序运行时启动


[/span>context-param

[/span>param-name

[/span>param-value


[/span>listener

[/span>listener-class


  这样我们的spring就搭建完成了


三、整合Struts2+Spring


  1、在项目中添加struts2-spring-plugin依赖节点


[/span>dependency

[/span>groupId

style="color: rgba(0, 0, 255, 1)"]org.apache.struts

[/span>artifactId

[/span>version


  由于struts2-spring-plugin依赖包含spring-context,spring-web,struts2-core依赖,所以我们需要把这三个依赖移除


  2、在applicationContext.xml文件中注入我们的TestAction类


<?xml version="1.0" encoding="UTF-8"?>


[/span>beans xmlns=""


xmlns:xsi=""


xsi:schemaLocation="


"

[/

相关文章
|
1月前
|
存储 Java API
简单两步,Spring Boot 写死的定时任务也能动态设置:技术干货分享
【10月更文挑战第4天】在Spring Boot开发中,定时任务通常通过@Scheduled注解来实现,这种方式简单直接,但存在一个显著的限制:任务的执行时间或频率在编译时就已经确定,无法在运行时动态调整。然而,在实际工作中,我们往往需要根据业务需求或外部条件的变化来动态调整定时任务的执行计划。本文将分享一个简单两步的解决方案,让你的Spring Boot应用中的定时任务也能动态设置,从而满足更灵活的业务需求。
74 4
|
2月前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
37 1
|
2月前
|
前端开发 安全 Java
技术进阶:使用Spring MVC构建适应未来的响应式Web应用
【9月更文挑战第2天】随着移动设备的普及,响应式设计至关重要。Spring MVC作为强大的Java Web框架,助力开发者创建适应多屏的应用。本文推荐使用Thymeleaf整合视图,通过简洁的HTML代码提高前端灵活性;采用`@ResponseBody`与`Callable`实现异步处理,优化应用响应速度;运用`@ControllerAdvice`统一异常管理,保持代码整洁;借助Jackson简化JSON处理;利用Spring Security增强安全性;并强调测试的重要性。遵循这些实践,将大幅提升开发效率和应用质量。
63 7
|
2月前
|
JavaScript 前端开发 Java
【颠覆传统】Spring框架如何用WebSocket技术重塑实时通信格局?揭秘背后的故事与技术细节!
【9月更文挑战第4天】随着Web应用对实时交互需求的增长,传统的HTTP模型已无法满足现代应用的要求,特别是在需要持续、双向通信的场景下。WebSocket协议由此诞生,提供全双工通信渠道,使服务器与客户端能实时互发消息。作为Java开发中最受欢迎的框架之一,Spring通过其WebSocket模块支持这一协议,简化了WebSocket在Spring应用中的集成。
54 0
|
3月前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
92 0
|
3月前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
172 0
|
3月前
|
数据库 Java 数据库连接
Struts 2 与 Hibernate 的完美邂逅:如何无缝集成两大框架,轻松玩转高效 CRUD 操作?
【8月更文挑战第31天】本文通过具体示例介绍了如何在 Struts 2 中整合 Hibernate,实现基本的 CRUD 操作。首先创建 Maven 项目并添加相关依赖,接着配置 Hibernate 并定义实体类及其映射文件。然后创建 DAO 接口及实现类处理数据库操作,再通过 Struts 2 的 Action 类处理用户请求。最后配置 `struts.xml` 文件并创建 JSP 页面展示用户列表及编辑表单。此示例展示了如何配置和使用这两个框架,使代码更加模块化和可维护。
81 0
|
3月前
|
Java Spring Maven
Struts 2遇见Spring:这个组合如何颠覆你的Web开发?
【8月更文挑战第31天】在现代Web开发中,Struts 2与Spring的结合使用能显著增强应用的模块化和可维护性。本文将介绍如何整合这两个框架,并提供代码示例。首先,在`pom.xml`中添加Struts 2和Spring的依赖,然后在`struts.xml`中配置Struts 2以识别Spring插件。接着,在Spring配置文件中定义bean,并在Struts 2的Action类中使用`@Autowired`注解进行自动注入。
47 0
|
3月前
|
Java 开发者 前端开发
Struts 2、Spring MVC、Play Framework 上演巅峰之战,Web 开发的未来何去何从?
【8月更文挑战第31天】在Web应用开发中,Struts 2框架因强大功能和灵活配置备受青睐,但开发者常遇配置错误、类型转换失败、标签属性设置不当及异常处理等问题。本文通过实例解析常见难题与解决方案,如配置文件中遗漏`result`元素致页面跳转失败、日期格式不匹配需自定义转换器、`&lt;s:checkbox&gt;`标签缺少`label`属性致显示不全及Action中未捕获异常影响用户体验等,助您有效应对挑战。
85 0
|
3月前
|
Java 前端开发 Spring
技术融合新潮流!Vaadin携手Spring Boot、React、Angular,引领Web开发变革,你准备好了吗?
【8月更文挑战第31天】本文探讨了Vaadin与Spring Boot、React及Angular等主流技术栈的最佳融合实践。Vaadin作为现代Java Web框架,与其他技术栈结合能更好地满足复杂应用需求。文中通过示例代码展示了如何在Spring Boot项目中集成Vaadin,以及如何在Vaadin项目中使用React和Angular组件,充分发挥各技术栈的优势,提升开发效率和用户体验。开发者可根据具体需求选择合适的技术组合。
69 0