关闭

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

标签: Javastrutsstruts2.0应用mysql
1269人阅读 评论(0) 收藏 举报
分类:

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

 






1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3861次
    • 积分:116
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类