Struts2的基本项目实现、简易使用方法

来源:互联网 发布:大卫芬奇电影知乎 编辑:程序博客网 时间:2024/06/04 21:49

Struts2的基本项目实现、简易使用方法

项目描述:如何搭建基本的struts2运行环境,从前端发送带参请求,经过struts.xml的action-result配置转接进后端的java程序里处理,处理的功能包括:转换上传的参数,并把参数经过Action、Service、Dao层存储进数据库.

  • 快速配置struts2环境
  • 前端jsp和返回jsp创建
  • 发送参数,转入后台,完成指定功能
  • 编写后台程序
  • 输出结果

快速配置struts2环境

struts2核心包可以自行去官网或者csdn下载区下载,我的收藏下载里也有.选用的是struts-2.3.31

1.创建java web 工程,打开下载好的struts-2.3.31,复制需求包:
struts-2.3.31\apps\struts2-blank\WEB-INF\lib
struts2基本包
把复制好的包Paste进新建工程下的[WebRoot]-[WEB-INF]-[lib]里
PS: struts2完整包里的struts2-blank就是一个空白项目的基本范例

2.继续在struts-2.3.31\apps\struts2-blank\WEB-INF文件夹里用写字板打开web.xml,复制过滤器和映射部分,把这一部分放进你的新建工程的web.xml相应位置这里写图片描述

3.复制\struts-2.3.31\apps\struts2-blank\WEB-INF\classes下struts.xml,放到工程的src文件夹下,打开它,把末尾报错的include标签去除,action标签清空.这里写图片描述
至此,搭建环境完毕.

前端JSP和返回JSP的简单创建

初始建立的web工程,直接运行在tomcat上会自动进入index.jsp
1.在index.jsp同级目录下创建test.jsp,选用基本模板.
2.在WEB-INF下建立文件夹jsp,在jsp文件夹里创建error.jsp和result.jsp
右键-new-other-jsp(basic pattern).

发送参数,转入后台,完成指定功能

1.在index.jsp的body里编入

<a href="test.jsp">click<br>

2.在test.jsp的body里编入

<a href="struts2test.action?data=2">start<br>

这样就发送了一段struts2test的action,同时传了一个data参数值2

3.进入struts.xml配置action

 <action name="struts2test" class="com.ft.testAction.Test">            <result>/WEB-INF/jsp/result.jsp</result> </action>

这样该action就能进入com.ft.testAction.Test类下的execute()函数,
当获取到返回值是”success”时,返回到result.jsp页面,该action的写法等价于:

 <action name="struts2test" class="com.ft.testAction.Test" method="execute">            <result name="success">/WEB-INF/jsp/result.jsp</result> </action>

编写后台程序

在src下创建com.ft.testAction,com.ft.testService,com.ft.testDao三个包,这就是一个项目常见的三层架构,Action用于处理接受到的请求,相关的功能在Service里处理,当要作数据库处理时,用到Dao包

功能:接收参数并在Service层里改变参数类型、然后把参数存进数据库。
分别在三层包里,创建Test类,Service类,Dao类
Test:

package com.ft.testAction;import com.ft.testService.Service;public class Test {    int data;    public int getData() {        return data;    }    public void setData(int data) {        this.data = data;    }    public String execute(){        System.out.println("接受数据成功:"+data);         Service ser = new Service();        //功能一:在Service层进行数据转换        System.out.println("功能一:在Service层进行数据转换");        System.out.println("数据进入Service层");        Integer result =ser.transform(data);        System.out.println("result是Integer类型的"+result);        //功能二:把转换后的数据经过Service层和Dao层存储进数据库        System.out.println("功能二:把转换后的数据经过Service层和Dao层存储进数据库");        ser.save(result);        return "success";    }   }

Service:

package com.ft.testService;import com.ft.testDao.Dao;public class Service {    public Integer transform(int data){        Integer i = data;        System.out.println("数据转换成功");        return i;    }    public void save(Integer data){        Dao dao = new Dao();            System.out.println("数据进入dao层");        dao.save(data);    }}

Dao

package com.ft.testDao;public class Dao {    public void save(Integer data){        System.out.println("存储成功");    }}

对了,在result.jsp的body里写上你想写的,比方写“存储成功”

输出结果

右键工程-run as-Myeclipse Server Application,选择默认的tomcat执行。点到底输出结果为:

存储成功

控制台输出以下:

接受数据成功:2
功能一:在Service层进行数据转换
数据进入Service层
数据转换成功
result是Integer类型的2
功能二:把转换后的数据经过Service层和Dao层存储进数据库
数据进入dao层
存储成功