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

来源:互联网 发布:电脑杀毒防护软件 编辑:程序博客网 时间:2024/04/29 11:54

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