豫ICP备17040950号-2

Struts2综合应用实例

前言

本实例实现了一个简单的功能:添加学生信息。
我们仍然在Struts2概述中struts2项目的基础上进行。

建立数据库

使用MySQL,scott用户,建立数据库,名为XSCJ,其中有一张表XSB,结构如下:

项目名 列名 数据类型 可空 默认值 说明
学号 XH 定长字符串型(char6) × 主键
姓名 XM 不定长字符串型(varchar8) ×
性别 XB 位型(bit) × 值约束:1/0。1表示男,0表示女
出生时间 CSSJ 日期时间型(datetime)
专业Id ZY_ID 整数型(int) ×
总学分 ZXF 整数型(int) 0 0<=总学分<160
备注 BZ 不定长字符串型(varchar500)
照片 ZP longblob
1
2
3
4
5
6
7
8
9
10
11
12
13
14
create database xscj;
use xscj;

create table xsb(
xh char(6) not null primary key,
xm varchar(8) not null,
xb bit not null check(xb=0 or xb=1),
cssj datetime ,
zy_id int,
zxf int default 0 check(0<=zxf<160),
bz varchar(500),
zp longblob
);

Struts2文件上传

Struts2文件上传

上传单个文件

Struts2中,提供了一个很容易操作的文件上传组件。
用Struts2上传单个文件的功能非常容易实现,只要使用普通的Action即可。但为了获得一些文件上传的信息,如上传文件名等,需要按照一定规则来为Action类增加一些getter和setter方法。
Struts2的文件上传默认使用的是Jakarta的Common-FileUpload文件上传框架。因此需要在Web应用中增加两个Jar包,即common-io-*.jar和common-fileupload-*.jar。

我们接着在struts2概述中的struts2项目中开发文件上传实例。

指定文件夹

在D盘下新建upload文件夹,上传的文件放到这个目录下。

Struts2国际化应用

前言

有的时候,一个项目不仅要求只支持一种语言。如用中文开发的项目,只有懂中文的用户能用,而别的国家由于不使用中文将难以使用。若再重新开发一套功能相同但只是语言不同的项目,显然是不可取的。所以对于一个项目,国际化的应用是必要的。

建立资源文件

在Struts2概述中的实例的基础上,在src文件夹下新建一个文件struts.properties,内容如下:

1
struts.custom.resources=messageResource

或者直接在struts.xml中添加:

1
<constant name="struts.custom.i18n.resources" value="messageResource"></constant>

Struts2概述

名词解释

Struts:它通过采用 Java Servlet/JSP 技术,实现了基于JavaEE Web应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

Struts2:它是Struts的下一代产品,是在Struts和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。

MVC模式的提出改变了程序设计的思路,但代码的规范性还是很差,而Struts框架则具有组件的模块化、灵活性和重用性的优点,同时也简化了基于MVC的Web应用程序的开发,从应用的角度来说,Struts有三大块:Struts核心类、Struts配置文件及Struts标签库。

Struts本身就实现了MVC模式,就Struts的发展来说,从以前的Struts1到现在的Struts2,其目的是为了给程序员一个好的框架来开发应用软件。

JSP demo设计

需求分析

既然是留言系统,肯定要有用户登录,所有需要一个用户表(user)。字段包括:id、username和password。其中id设为自动增长的int型,并设为主键。username和password都设为varchar型。登录成功后要有个主界面,显示别人和自己的留言信息,那就应该有个留言表(message)。字段包括:id、userid、date、title、content。其中id设为自动增长的int型,并设为主键。userid是user表中的id,表明该条留言是该用户留的。date表示发布留言的时间,datetime型。title表示发布留言的标题,varchar型。content表示发布的内容,varchar型。

创建数据库和表

使用MySQL,scott用户。创建数据库“jsp”,创建表user、message。