1、新建JavaWeb工程struts2_addStudent
2、在Web_Root>WEB-INF>lib下导入struts2的九个基本jar包,
另添加jdbc和datetimepicker日期小插件的struts2-dojo-plugin包,建立path
3、创建学生信息表:stu_num、stu_name、stu_gender、stu_birthday、stu_major、stu_remark
4、在src>com.bean包下新建javaBean,Student.java
package com.bean;
import java.util.Date;
public class Student {
private String stu_num;
private String stu_name;
private int stu_gender;
private String stu_major;
private java.sql.Date stu_birthday;
private String stu_remarks;
public String getStu_num() {
return stu_num;
}
public void setStu_num(String stu_num) {
this.stu_num = stu_num;
}
public String getStu_name() {
return stu_name;
}
public void setStu_name(String stu_name) {
this.stu_name = stu_name;
}
public int getStu_gender() {
return stu_gender;
}
public void setStu_gender(int stu_gender) {
this.stu_gender = stu_gender;
}
public String getStu_major() {
return stu_major;
}
public void setStu_major(String stu_major) {
this.stu_major = stu_major;
}
public java.sql.Date getStu_birthday() {
return stu_birthday;
}
public void setStu_birthday(java.sql.Date stu_birthday) {
this.stu_birthday = stu_birthday;
}
public String getStu_remarks() {
return stu_remarks;
}
public void setStu_remarks(String stu_remarks) {
this.stu_remarks = stu_remarks;
}
@Override
public String toString() {
return "Student [stu_num=" + stu_num + ", stu_name=" + stu_name + ", stu_gender=" + stu_gender + ", stu_major="
+ stu_major + ", stu_birthday=" + stu_birthday + ", stu_remarks=" + stu_remarks + "]";
}
}
5、在src>com.util包下新建数据库操作工具类DBUtil.java
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.bean.Student;
public class DBUtil {
static Connection conn=null;
static PreparedStatement ps=null;
public DBUtil(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?useSSL=false","root","root123");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public boolean addStudent(Student st){
try{
ps=conn.prepareStatement("insert into students value(?,?,?,?,?,?)");
ps.setString(1, st.getStu_num());
ps.setString(2, st.getStu_name());
ps.setInt(3, st.getStu_gender());
ps.setDate(4, st.getStu_birthday());
ps.setString(5, st.getStu_major());
ps.setString(6, st.getStu_remarks());
ps.execute();
return true;
}catch(SQLException e){
e.printStackTrace();
return false;
}finally{
try {
ps.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
6、在WEB-INF下新建web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2Filter</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
7、在WebRoot下新建stu.jsp的添加学生页
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>save Student</title>
<s:head/>
<sx:head/> //注意添加这个标签否则没有效果
</head>
<body>
<h3>添加学生信息</h3>
<s:form action="save" method="post">
<table>
<tr>
<!-- <td>学号:</td> -->
<td><s:textfield name="student.stu_num" label="学号"/></td>
</tr>
<tr>
<!-- <td>姓名:</td> -->
<td><s:textfield name="student.stu_name" label="姓名"/></td>
</tr>
<tr>
<!-- <td>性别:</td> -->
<td><s:radio name="student.stu_gender" label="性别" list="#{1:'男',2:'女'}" value="1"/></td>
</tr>
<tr>
<td>出生时间:</td>
<td><sx:datetimepicker name="student.stu_birthday" id="birthday" displayFormat="yyyy-MM-dd"/>
</td>
</tr>
<tr>
<!-- <td>专业:</td> -->
<td><s:textfield name="student.stu_major" label="专业"/></td>
</tr>
<tr>
<!-- <td>姓名:</td> -->
<td><s:textfield name="student.stu_remarks" label="备注"/></td>
</tr>
<tr>
<td><s:reset value="重置"/></td>
<td><s:submit value="提交"/></td>
</tr>
</table>
</s:form>
</body>
</html>
8、在src>com.action 下添加处理请求的action类,新建AddStudent.java
package com.action;
import com.bean.Student;
import com.opensymphony.xwork2.ActionSupport;
import com.util.DBUtil;
public class AddStudent extends ActionSupport{
private Student student;
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public String execute()throws Exception{
DBUtil db=new DBUtil(); //创建连接对象
Student stu=new Student();
stu.setStu_num(student.getStu_num());
stu.setStu_name(student.getStu_name());
stu.setStu_gender(student.getStu_gender());
stu.setStu_birthday(student.getStu_birthday());
stu.setStu_major(student.getStu_major());
stu.setStu_remarks(student.getStu_remarks());
if(db.addStudent(stu))
return SUCCESS;
else
return ERROR;
}
}
9、在src下新建struts.xml配置文件,关联stu.jsp和action处理类
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="save" class="com.action.AddStudent">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
10、在WebRoot下添加success.jsp和error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>success add student</title>
</head>
<body>
<h3 style="margin:100px auto">
Congratulation! You SUCCESS add Student into Database.
</h3>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>error</title>
</head>
<body>
<h3 style="margin:100px auto">
Sorry! You Fail in add Student into Database.
</h3>
</body>
</html>
11、保存启动Tomcat浏览器测试


数组库表

如果日期控件没有效果,查看是否在<title>的标签后有添加<s:head/>或 <sx:head/>
本文介绍使用Struts2框架创建一个简单的JavaWeb应用来添加学生信息,包括项目搭建、数据库连接、页面设计及后台处理流程。
4359

被折叠的 条评论
为什么被折叠?



