1. 建立数据库
首先建立数据库XSCJ,建立学生表XSB。
项目名 | 列名 | 数据类型 | 是否可空 | 默认值 | 说明 |
学号 | XH | char(6) |
| 主键 |
|
姓名 | XM | char(8) |
|
|
|
性别 | XB | bit |
|
|
|
出生时间 | CSSJ | datetime | 是 |
|
|
专业 | ZY | char(20) |
|
|
|
备注 | BZ | varchar(500) | 是 |
|
|
2. 建立Web项目
3. 加载Struts 2的基本类库
右击项目名,选择【Build Path】→【ConfigureBuild Path】菜单项,出现对话框。选择【Libraries】,单击【Add External JARs】按钮,进入下载的Struts 2目录的lib文件夹,选中如下所列出的8个Jar包,单击【OK】按钮完成类库的添加。
所需的jar包
备注:如果是Myeclipse2014,又是这种方式引入jar,那么发布项目的时候需要手动添加jar到项目下。项目右键->properties->Myeclipse->DeploymentAssembly->Add
4. 修改web.xml
注意:这里不要把struts2写错。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
5. 建立stu.jsp文件
在项目的WebRoot文件夹下建立stu.jsp文件,代码。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<%@ taglib uri="/struts-dojo-tags" prefix="sx"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<s:head/>
<sx:head/>
</head>
<body>
<h3>添加学生信息</h3>
<s:form action="save.action" method="post" theme="simple">
<table>
<tr>
<td>学号:</td>
<td><s:textfield name="xs.xh"></s:textfield></td>
</tr>
<tr>
<td>姓名:</td>
<td><s:textfield name="xs.xm"></s:textfield>
</td>
</tr>
<tr>
<td>性别:</td>
<td><s:radio name="xs.xb" list="#{1:'男',0:'女'}" value="1"></s:radio></td>
</tr>
<tr>
<td>专业:</td>
<td><s:textfield name="xs.zy" label="专业"></s:textfield> </td>
</tr>
<tr>
<td width="70">出生时间:</td>
<td><sx:datetimepicker name="xs.cssj" id="cssj"
displayFormat ="yyyy-MM-dd"></sx:datetimepicker></td>
</tr>
<tr>
<td> 备注:</td>
<td><s:textarea name="xs.bz" label="备注"></s:textarea></td>
</tr>
<tr>
<td><s:submit value="添加"></s:submit></td>
<td><s:reset value="重置"></s:reset></td>
</tr>
</table>
</s:form>
</body>
</html>
datetimepicker 的乱码问题
解决方法(这种方式会导致没有显示中文的“月”)
在 <sx:head />中加入:extraLocales="UTF-8"
在 <sx:datetimepicker .../>中加入:language="UTF-8"
6. 建立表对应的JavaBean和DBConn类
在src文件夹下新建包“org.model”,在该包下建class文件,命名为“Xsb”,该类中有6个字段,分别为xh、xm、xb、zy、cssj和bz,并生成它们的getter和setter方法,代码如下:
package org.model;
import java.sql.Date;
public class Xsb {
private String xh;
private String xm;
private byte xb;
private String zy;
private Date cssj;
private String bz;
//生成它们的getter和setter方法
public String getXh(){
return xh;
}
public void setXh(String xh){
this.xh = xh;
}
public String getXm(){
return xm;
}
public void setXm(String xm){
this.xm = xm;
}
public byte getXb(){
return xb;
}
public void setXb(byte xb){
this.xb = xb;
}
public String getZy(){
return zy;
}
public void setZy(String zy){
this.zy = zy;
}
public Date getCssj(){
return cssj;
}
public void setCssj(Date cssj){
this.cssj = cssj;
}
public String getBz(){
return bz;
}
public void setBz(String bz){
this.bz = bz;
}
}
注意,cssj为java.sql.Date类型。
在src文件夹下建立包org.work,在该包下建立class文件,命名为“DBConn”,该类作用是和mysql数据库连接,也可和sqlserver连接,代码如下:
package org.work;
import java.sql.*;
import org.model.Xsb;
public class DBConn {
Connection conn;
PreparedStatement pstmt;
//取得连接的url,能访问MySQL数据库的用户名,密码;jsj:数据库名
String url = "jdbc:mysql://localhost:3306/XSCJ";
String username = "root";
String password = "yqy";
public DBConn(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url,username,password);
}catch(Exception e){
e.printStackTrace();
}
}
public boolean save(Xsb xs){
try{
pstmt=conn.prepareStatement("insert into XSB1 values(?,?,?,?,?,?)");
pstmt.setString(1, xs.getXh());
pstmt.setString(2, xs.getXm());
pstmt.setByte(3, xs.getXb());
pstmt.setString(4, xs.getZy());
pstmt.setDate(5, xs.getCssj());
pstmt.setString(6, xs.getBz());
pstmt.executeUpdate();
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}
}
7. 建立Action类SaveAction
package org.action;
import org.model.Xsb;
import org.work.DBConn;
import com.opensymphony.xwork2.ActionSupport;
public class SaveAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = -6770077544353985222L;
private Xsb xs;
public Xsb getXs() {
return xs;
}
public void setXs(Xsb xs) {
this.xs=xs;
}
public String execute() throws Exception{
DBConn db=new DBConn();
Xsb stu=new Xsb();
stu.setXh(xs.getXh());
stu.setXm(xs.getXm());
stu.setXb(xs.getXb());
stu.setZy(xs.getZy());
stu.setCssj(xs.getCssj());
stu.setBz(xs.getBz());
if(db.save(stu)){
return SUCCESS;
}else{
return ERROR;
}
}
}
8. 创建并配置struts.xml文件
在src文件夹下建立该文件,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="save" class="org.action.SaveAction">
<result name="success">/success.jsp</result>
<result name="error">/stu.jsp</result>
</action>
</package>
</struts>
9. 创建success.jsp页面
在WebRoot文件夹下创建success.jsp文件,代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<head><title>success</title>
</head>
<body>
恭喜你,成功添加!
</body>
</html>
注意:书上没有<title>在myeclipse运行中会报错
10. 部署运行
部署后,启动Tomcat,在浏览器中输入http://localhsot:8080/Example_Struts/stu.jsp”,输入要添加的学生信息后,单击【添加】按钮,如果添加成功就会跳转到success.jsp页面。