Struts2综合应用实例--添加学生信息

1. 建立数据库

首先建立数据库XSCJ,建立学生表XSB。


项目名

列名

数据类型

是否可空

默认值

说明

学号

XH

char(6)

 

主键

 

姓名

XM

char(8)

 

 

 

性别

XB

bit

 

 

 

出生时间

CSSJ

datetime

 

 

专业

ZY

char(20)

 

 

 

备注

BZ

varchar(500)

 

 

打开MyEclipse,建立一个Web项目,命名为“ Example_Struts”。

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页面。

 






  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值