SSH框架搭建之实现并配置ACTION(Spring与Struts2集成第一种方式)

一、基础环境

1、Windows10、Java17、Maven3.8.8、Tomcat9.0.76、IDEA2022.3.3

2、已完成Maven项目的创建

2、已完成Struts2、Spring、Hibernate依赖配置

3、已完成实体类创建、Hibernate映射文件配置、第一种方法sessionFactory配置,并且以上配置已测试通过

4、已完成第二种方法数据源和会话工厂的配置、日志打印配置

5、已实现并配置DAO

6、已实现并配置SERVICE、事务管理配置

二、框架版本

struts2:2.5.31

spring:5.3.27

hibernate:5.6.15.Final

三、Struts的Action编写

1、创建action目录。

2、创建employeeAction类,定义类属性如:emp_no、cust_time、message,手动注入employeeService、employee,定义页面跳转方法queryInput、addInput,定义查询方法queryEmployeeByEmpNo,定义添加方法add。

3、创建属性的setter和getter,setter属性可从页面获取对象,getter属性可向页面传递对象。

4、手动注入setEmployeeService方法。

备注:

(1)、对象或属性的getter使其对view page提供有效的支持,属性的setter使得类可以自动接收view page传过来的值。

(2)、方法返回相应的字符串,字符串需与struts.xml中的name匹配,以跳转到对应的页面。

四、Struts.xml配置文件编写(指定URL、Java class、View page之间的关系)

1、为了方便IDEA创建struts.xml文件,在IDEA的插件中加载Struts2插件。

2、在resource包下使用快捷键“ALT+INSERT”创建struts.xml配置文件

3、配置文件中的参数

代码如下:

<struts>

    <!-- 开启开发模式 -->

    <constant name="struts.devMode" value="true"></constant>

    <!-- 字符编码 -->

    <constant name="struts.i18n.encoding" value="UTF-8"></constant>

    <!-- 设置页面模式,控制struts标签不自动生成<tr><td>标签 -->

    <constant name="struts.ui.theme" value="simple"></constant>

    <!-- 动态方法调用,为true时,就可以在struts.xml配置“*”的通配符,来调用action里的方法 -->

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

    <package name="default" extends="struts-default">

        <!-- 定义默认的action,在访问http://localhost:8081/时默认访问index,若不配置,则访问这个地址时会报错 -->

        <default-action-ref name="index"></default-action-ref>

        <!-- 开启全局动态方法支持的配置 -->

        <global-allowed-methods>regex:*</global-allowed-methods>

        <!-- specify the relationship between a URL, a Java class, and a view page -->

        <!-- name:访问的action名称,不访问任何方法,直接跳转到index.jsp -->

        <action name="index">

            <result>/index.jsp</result>

        </action>

        <!-- name:访问的action名称,class:类路径和类名称,method:类中执行的方法 -->

        <action name="query_input" class="demo.employee.action.EmployeeAction" method="queryInput">

            <!-- 执行结果为query_input则跳转到query_input.jsp -->

            <result name="query_input">/WEB-INF/page/query_input.jsp</result>

        </action>

        <action name="add_input" class="demo.employee.action.EmployeeAction" method="addInput">

            <result name="add_input">/WEB-INF/page/add_input.jsp</result>

        </action>

        <action name="query" class="demo.employee.action.EmployeeAction" method="queryEmployeeByEmpNo">

            <result name="query_success">/WEB-INF/page/employee_info.jsp</result>

        </action>

        <action name="add" class="demo.employee.action.EmployeeAction" method="add">

            <result name="add_success">/WEB-INF/page/employee_info.jsp</result>

        </action>

    </package>

</struts>

五、web.xml文件中的配置

(1)、指定Spring配置文件的存放位置,若文件放置在/WEB-INF/目录下,且名称为applicationContext.xml,则可以不配置。

(2)、配置监听器。该监听器用于在web环境中启动Spring容器。

(3)、过滤器配置。该过滤器把一个Hibernate Session和一次完整的请求过程相绑定,解决了诸如延迟加载等问题。

注意:

(1)、该过滤器要配置在Struts2核心控制器之前。

(2)、若Spring中定义的SessionFactory Bean的id不是sessionFactory,则需要为该过滤器配置sessionFactoryBeanName参数。

1、Spring的配置

(1)、配置监听器。

(2)、Spring配置文件的存放位置。

参考官网的配置:

进入spring官网:https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-servlet.html

2、Hibernate的配置

(1)、openSessionInViewFilter过滤器配置。

3、Struts2的配置

官网参考地址:https://struts.apache.org/getting-started/how-to-create-a-struts2-web-application;

web.xml

六、视图的整理

1、index.jsp页面改造

(1)要用到struts2的<s:>标签,需要在页面顶部page下引入标签库<%@ taglib prefix="s" uri="/struts-tags" %>。

(2)在页面增加“添加员工信息”、“员工信息查询”链接,以访问对应页面。

 注:

(1)、直接使用action的name的方式时,需要在struts.xml中配置需要调用的方法。

(2)、使用actionName.method的方式时,不需要在struts.xml中配置需要调用的方法。

2、新增“添加员工信息”、“员工信息查询”页面。

3、新增employee_info.jsp页面

(1)、新增employee_info.jsp页面,通过<s:property>标签展示员工信息。

七、通过Maven使用jetty插件启动服务

1、通过Maven添加jetty插件

参考官网:https://www.eclipse.org/jetty/documentation/current/#jetty-maven-plugin

代码如下:

<!-- jetty插件 -->

<plugin>

  <groupId>org.eclipse.jetty</groupId>

  <artifactId>jetty-maven-plugin</artifactId>

  <version>9.4.51.v20230217</version>

  <configuration>

    <httpConnector>

      <port>8081</port>

    </httpConnector>

  </configuration>

</plugin>

2、配置IDEA的启动Configurations

3、启动服务

4、测试

4.1、主页

4.2、点击“员工查询”进入查询页面

4.3、输入员工编号查询信息

附1、Spring与Struts2集成步骤

附2、Spring与Struts集成的第二种方式

当struts.xml中class不使用路径加类名时,需要在spring的配置文件中配置对应的bean。

附3、基于SSH框架开发的步骤小结

1、导入相关的依赖

2、整合Spring与Hibernate

3、编写业务层、事务管理规则

4、整合Spring与Struts2

5、编写web.xml,测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值