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
把复制好的包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层
存储成功