Struts2簡單實現新增學生
阿新 • • 發佈:2019-01-04
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/>