struts2框架,action完整增刪改查,easyui實(shí)現(xiàn)管理模塊,視頻和個人筆記【詩書畫唱】
CTRL+F:例子,視頻和個人筆記
加載下拉框
修改

例子 START
加載下拉框,增刪改查的完整例子 START
SQL部分:
select* from game
create table game(
id int primary key auto_increment,
gname varchar(100),
gtype varchar(100),
Gcomp varchar(100),
gyear varchar(100)
);
drop table game
insert into? game(gname,
gtype,
Gcomp,
gyear ) values("游戲名1","游戲類型1","游戲公司1","游戲發(fā)行時間1");
insert into? game(gname,
gtype,
Gcomp,
gyear ) values("游戲名2","游戲類型2","游戲公司2","游戲發(fā)行時間2");
insert into? game(gname,
gtype,
Gcomp,
gyear ) values("游戲名3","游戲類型3","游戲公司3","游戲發(fā)行時間3");
insert into? game(gname,
gtype,
Gcomp,
gyear ) values("游戲名4","游戲類型4","游戲公司4","游戲發(fā)行時間4");


package com.SSHC.action;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.struts2.ServletActionContext;
import com.SSHC.bean.Game;
import com.SSHC.dao.GameDao;
public class GameAction {
private Map<String,Object>map = new HashMap<String,Object>();
? ? private GameDao gameDao = new GameDao();
? ? private Game g;
? ? private InputStream ins;
? ? //添加分頁屬性
? ? private Integer rows;//每頁記錄條數(shù)
? ? private Integer page;//頁碼數(shù)
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
public GameDao getGameDao() {
return gameDao;
}
public void setGameDao(GameDao gameDao) {
this.gameDao = gameDao;
}
public Integer getRows() {
return rows;
}
public void setRows(Integer rows) {
this.rows = rows;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Game getG() {
return g;
}
public void setG(Game g) {
this.g = g;
}
public InputStream getIns() {
return ins;
}
public void setIns(InputStream ins) {
this.ins = ins;
}
public String loadAll(){
System.out.println("每頁顯示" + rows + "條數(shù)據(jù)");
System.out.println("當(dāng)前顯示第" + page + "頁的數(shù)據(jù)");
g = new Game();
g.setPage(page);
g.setRows(rows);
List<Game>list = gameDao.selectByPage(g);
Integer total = gameDao.total();
map.put("rows", list);
map.put("total", total);
return "success";
}
public String addGame(){
try {
Integer count = gameDao.add(g);
//{ct:1}
ServletActionContext.getResponse()
? ? .getWriter().write("{\"ct\":" + count + "}");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public String deleteGame(){
try {
Integer count = gameDao.delete(g.getId());
//{ct:1}
ServletActionContext.getResponse()
? ? .getWriter().write("{\"ct\":" + count + "}");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
//加載游戲類型下拉框中的數(shù)據(jù)
public String loadSel() throws UnsupportedEncodingException{
//String jsonStr = "[{\"id\":\"1\",\"gtype\":\"RPG\"}]";
StringBuilder jsonStr = new StringBuilder("[");
List<String>list = gameDao.getAllType();
String dot = "";
for(String s : list) {
jsonStr.append(dot);
jsonStr.append("{\"id\":\"" + s + "\",\"gtype\":\""?
? ? ? ? + s + "\"}");
dot = ",";
}
jsonStr.append("]");
ins = new ByteArrayInputStream(jsonStr.toString().getBytes("utf-8"));
return "success";
}
? ??
? ? public String toEdit(){
? ? g = gameDao.selectById(g.getId());
? ? return "success";
? ? }
? ??
? ? public String editGame(){
? ? try {
Integer count = gameDao.update(g);
//{ct:1}
ServletActionContext.getResponse()
? ? .getWriter().write("{\"ct\":" + count + "}");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? return null;
? ? }
}


package com.SSHC.bean;
public class Game {
? ? private Integer id;
? ? private String gname;
? ? private String gtype;
? ? private String Gcomp;
? ? private String gyear;
? ??
? ? //分頁屬性
? ? private Integer page;
? ? private Integer rows;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getGname() {
return gname;
}
public void setGname(String gname) {
this.gname = gname;
}
public String getGtype() {
return gtype;
}
public void setGtype(String gtype) {
this.gtype = gtype;
}
public String getGcomp() {
return Gcomp;
}
public void setGcomp(String Gcomp) {
this.Gcomp = Gcomp;
}
public String getGyear() {
return gyear;
}
public void setGyear(String gyear) {
this.gyear = gyear;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getRows() {
return rows;
}
public void setRows(Integer rows) {
this.rows = rows;
}
}


package com.SSHC.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.SSHC.bean.Game;
import com.SSHC.util.DbUtil;
public class GameDao {
? ? public List<Game>selectByPage(Game game){
? ? String sql = "select * from game limit ?,?";
? ? List<Game>list = new ArrayList<Game>();
? ? Connection conn = null;
? ? PreparedStatement pstm = null;
? ? ResultSet rs = null;
? ?
? ? try {
? ? ? ? conn = DbUtil.getConn();
pstm = conn.prepareStatement(sql);
Integer page = game.getPage();
Integer rows = game.getRows();
//隱藏的記錄條數(shù)
Integer hideCount = (page - 1) * rows;
pstm.setInt(1, hideCount);
pstm.setInt(2, rows);
rs = pstm .executeQuery();
while(rs.next()){
Game g = new Game();
g.setId(rs.getInt("id"));
g.setGname(rs.getString("gname"));
g.setGtype(rs.getString("gtype"));
g.setGcomp(rs.getString("Gcomp"));
g.setGyear(rs.getString("gyear"));
list.add(g);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DbUtil.close(rs, pstm, conn);
}
? ? return list;
? ? }
? ??
? ? public Integer total(){
? ? String sql = "select count(*) ct from game";
? ? Integer count = 0;
? ? Connection conn = null;
? ? PreparedStatement pstm = null;
? ? ResultSet rs = null;
? ?
? ? try {
? ? ? ? conn = DbUtil.getConn();
pstm = conn.prepareStatement(sql);
rs = pstm.executeQuery();
if(rs.next()) {
count = rs.getInt("ct");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
DbUtil.close(rs, pstm, conn);
}? ?
? ? return count;
? ? }
? ??
? ? public Integer add(Game g){
? ? String sql = "insert into game "
+ "(gname,gtype,Gcomp,gyear) values(?,?,?,?)";
? ? Connection conn = null;
? ? PreparedStatement pstm = null;
? ? Integer count = 0;
? ? try {
? ? ? ? conn = DbUtil.getConn();
pstm = conn.prepareStatement(sql);
pstm.setString(1, g.getGname());
pstm.setString(2, g.getGtype());
pstm.setString(3, g.getGcomp());
pstm.setString(4, g.getGyear());
count = pstm.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? return count;
? ? }
? ??
? ? public Integer delete(Integer id){
? ? String sql = "delete from game where id = ?";
? ? Connection conn = null;
? ? PreparedStatement pstm = null;
? ? Integer count = 0;
? ? try {
? ? ? ? conn = DbUtil.getConn();
pstm = conn.prepareStatement(sql);
pstm.setInt(1, id);
count = pstm.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? return count;
? ? }
? ??
? ? public List<String> getAllType(){
? ? String sql = "select distinct gtype from game";
? ? Connection conn = null;
? ? PreparedStatement pstm = null;
? ? ResultSet rs = null;
? ? List<String>list = new ArrayList<String>();
? ?
? ? try {
? ? ? ? conn = DbUtil.getConn();
pstm = conn.prepareStatement(sql);
? ? rs = pstm.executeQuery();
? ? while(rs.next()) {
? ? list.add(rs.getString("gtype"));
? ? }
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? return list;
? ? }
? ??
? ? public Game selectById(Integer id){
? ? String sql = "select * from game where id = ?";
? ? Connection conn = null;
? ? PreparedStatement pstm = null;
? ? ResultSet rs = null;
? ? Game g = new Game();
? ?
? ? try {
? ? ? ? conn = DbUtil.getConn();
pstm = conn.prepareStatement(sql);
pstm.setInt(1, id);
rs = pstm.executeQuery();
if(rs.next()) {
g.setId(id);
g.setGname(rs.getString("gname"));
g.setGtype(rs.getString("gtype"));
g.setGcomp(rs.getString("Gcomp"));
g.setGyear(rs.getString("gyear"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? return g;
? ? }
? ??
? ? public Integer update(Game g){
? ? String sql = "update game set gname = ?,gtype = ?,Gcomp = ?,gyear = ? where id = ?";
? ? Connection conn = null;
? ? PreparedStatement pstm = null;
? ? Integer count = 0;
? ?
? ? try {
? ? ? ? conn = DbUtil.getConn();
pstm = conn.prepareStatement(sql);
pstm.setString(1, g.getGname());
pstm.setString(2, g.getGtype());
pstm.setString(3, g.getGcomp());
pstm.setString(4, g.getGyear());
pstm.setInt(5, g.getId());
count = pstm.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? return count;
? ? }
}


package com.SSHC.util;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
public class DbUtil {
private static String driverName;
? ? private static String url;
? ? private static String user;
? ? private static String pwd;
? ??
? ? static {
? ? //讀取properties文件
? ? Properties prop = new Properties();
? ? //將db.properties文件讀取到內(nèi)存中去
? ? InputStream is = DbUtil.class.getClassLoader()
? ? .getResourceAsStream("db.properties");
? ? //加載內(nèi)容
? ? try {
prop.load(is);
//讀取內(nèi)容
driverName = prop.getProperty("drivername");
url = prop.getProperty("url");
user = prop.getProperty("username");
pwd = prop.getProperty("password");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
? ? }
? ??
? ? //獲取數(shù)據(jù)庫連接對象的方法
? ? public static Connection getConn(){
? ? Connection conn = null;
? ? try {
Class.forName(driverName);
conn = DriverManager.getConnection(url,user,pwd);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}? ?
? ? return conn;
? ? }
? ??
? ? public static void close(ResultSet rs,PreparedStatement pstm
? ? ,Connection conn){
? ? ? ? try {
? ? ? ? if(rs != null) {
? ? ? ? ? ? rs.close();
? ? ? ? ? ? }
? ? ? ? ? ? if(pstm != null) {
? ? ? ? ? ? pstm.close();
? ? ? ? ? ? }
? ? ? ? ? ? if(conn != null) {
? ? ? ? ? ? conn.close();
? ? ? ? ? ? }
? ? ? ? } catch(Exception e) {
? ? ? ? e.printStackTrace();
? ? ? ? }
? ? }
}


drivername=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/firstjsp?useUnicode=true&characterEncoding=UTF-8
username=root
password=root


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation
//DTD Struts Configuration 2.1//EN"?
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
? ? ?<package name="my" namespace="/gm" extends="json-default">
? ? ? ? ?<action name="ldAc" class="com.SSHC.action.GameAction"
? ? ? ? ? ? ?method="loadData">
? ? ? ? ? ? ?<result type="stream">
? ? ? ? ? ? ? ? ?<param name="contentType">text/plain</param>
? ? ? ? ? ? ? ? ?<!-- action返回的字符串的內(nèi)容取自GameAction的哪個屬性 -->
? ? ? ? ? ? ? ? ?<param name="inputName">ins</param>
? ? ? ? ? ? ?</result>
? ? ? ? ?</action>
? ? ? ? ?<action name="ldAllAc" class="com.SSHC.action.GameAction"
? ? ? ? ? ? ?method="loadAll">
? ? ? ? ? ? ?<result type="json">
? ? ? ? ? ? ? ? ?<param name="root">map</param>
? ? ? ? ? ? ? ? ?<param name="contentType">text/html</param>
? ? ? ? ? ? ?</result>
? ? ? ? ?</action>??
? ? ? ? ?<action name="addAc" class="com.SSHC.action.GameAction"
? ? ? ? ? ? ?method="addGame">
? ? ? ? ?</action>
? ? ? ? ?<action name="deleteAc" class="com.SSHC.action.GameAction"
? ? ? ? ? ? ?method="deleteGame">
? ? ? ? ?</action>
? ? ? ? ?
? ? ? ? ?<action name="loadTypeAc" class="com.SSHC.action.GameAction"
? ? ? ? ? ? ?method="loadSel">
? ? ? ? ? ? ?<result type="stream">
? ? ? ? ? ? ? ? ?<param name="contentType">text/plain</param>
? ? ? ? ? ? ? ? ?<param name="inputName">ins</param>
? ? ? ? ? ? ?</result>
? ? ? ? ?</action>
? ? ? ? ?<action name="toEditAc" class="com.SSHC.action.GameAction"
? ? ? ? ? ? ?method="toEdit">
? ? ? ? ? ? ?<result>/edit.jsp</result>
? ? ? ? ?</action>
? ? ? ? ?<action name="editAc" class="com.SSHC.action.GameAction"
? ? ? ? ? ? ?method="editGame">
? ? ? ? ?</action>
? ? ?</package>
</struts>


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
? <display-name>J190802</display-name>
? <!-- struts2框架的配置 -->
? <filter>
? ? ? <filter-name>struts2</filter-name>
? ? ? <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
? </filter>
? <filter-mapping>
? ? ? <filter-name>struts2</filter-name>
? ? ? <url-pattern>/*</url-pattern>
? </filter-mapping>
? <welcome-file-list>
? ? <welcome-file>index.html</welcome-file>
? ? <welcome-file>index.htm</welcome-file>
? ? <welcome-file>index.jsp</welcome-file>
? ? <welcome-file>default.html</welcome-file>
? ? <welcome-file>default.htm</welcome-file>
? ? <welcome-file>default.jsp</welcome-file>
? </welcome-file-list>
</web-app>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
? ? String path = request.getContextPath();
? ? String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? ? <head>
? ? ? ? <base hreff="<%=basePath%>">
? ? ? ? <title></title>
? ? ? ? <meta http-equiv="pragma" content="no-cache">
? ? ? ? <meta http-equiv="cache-control" content="no-cache">
? ? ? ? <meta http-equiv="expires" content="0">
? ? ? ? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
? ? ? ? <meta http-equiv="description" content="This is my page">
? ? </head>
? ? <body>
? ? ? ? <h1 align="center">新增游戲</h1>
? ? ? ? <form id="addFrm" action="" method="post">
? ? ? ? ? ? <table align="center">
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲名稱:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.gname" class="easyui-validatebox"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="required:true"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? validType="length[6,30]"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? invalidMessage="游戲名稱的長度必須在6到30位之間"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲類型:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.gtype" class="easyui-combobox"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="valueField:'id',textField:'gtype',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? panelHeight:'auto',editable:false,url:'gm/loadTypeAc.action'" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲公司:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.Gcomp" class="easyui-validatebox"??
? ? ? ? ? ? ? ? ? ? ? ? ? ? validType="length[4,30]"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? invalidMessage="游戲公司的長度必須在4到30位之間"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲年份:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.gyear" class="easyui-numberbox"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="min:1000,max:9999"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td colspan="2" align="center">
? ? ? ? ? ? ? ? ? ? ? ? <a hreff="javascript:saveGame();" class="easyui-linkbutton"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="iconCls:'icon-save'">保存</a>
? ? ? ? ? ? ? ? ? ? ? ? <a hreff="javascript:clsWin();" class="easyui-linkbutton"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="iconCls:'icon-cut'">取消</a>
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? </table>
? ? ? ? </form>
? ? </body>
</html>


{"total":2,"rows":[{"id":1,"gname":"WANGZHERONGYI","gtype":"MOB","Gcomp":"TENCENT","gyear":2010}]}

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
? ? String path = request.getContextPath();
? ? String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? ? <head>
? ? ? ? <base hreff="<%=basePath%>">
? ? ? ? <title></title>
? ? ? ? <meta http-equiv="pragma" content="no-cache">
? ? ? ? <meta http-equiv="cache-control" content="no-cache">
? ? ? ? <meta http-equiv="expires" content="0">
? ? ? ? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
? ? ? ? <meta http-equiv="description" content="This is my page">
? ? </head>
? ? <body>
? ? ? ? <h1 align="center">修改游戲</h1>
? ? ? ? <form id="editFrm" action="" method="post">
? ? ? ? ? ? <!-- 選中的游戲的id存放在隱藏表單域 -->
? ? ? ? ? ? <input type="hidden" name="g.id" value="${g.id }"/>
? ? ? ? ? ? <table align="center">
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲名稱:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.gname" class="easyui-validatebox"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="required:true"?
? ? ? ? ? ? ? ? ? ? ? ? ? ? validType="length[2,30]" value="${g.gname }"
? ? ? ? ? ? ? ? ? ? ? ? ? ? invalidMessage="游戲名稱的長度必須在6到30位之間"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲類型:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.gtype" class="easyui-combobox"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;" value="${g.gtype}"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="valueField:'id',textField:'gtype',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? panelHeight:'auto',editable:false,url:'gm/loadTypeAc.action'" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲公司:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.Gcomp" class="easyui-validatebox"??
? ? ? ? ? ? ? ? ? ? ? ? ? ? validType="length[2,30]" value="${g.Gcomp }"
? ? ? ? ? ? ? ? ? ? ? ? ? ? invalidMessage="游戲公司的長度必須在4到30位之間"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td>游戲年份:</td>
? ? ? ? ? ? ? ? ? ? <td>
? ? ? ? ? ? ? ? ? ? ? ? <input name="g.gyear" class="easyui-numberbox"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="min:1000,max:9999" value="${g.gyear }"
? ? ? ? ? ? ? ? ? ? ? ? ? ? style="width:180px;" />
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? <td colspan="2" align="center">
? ? ? ? ? ? ? ? ? ? ? ? <a hreff="javascript:editGame();" class="easyui-linkbutton"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="iconCls:'icon-save'">保存</a>
? ? ? ? ? ? ? ? ? ? ? ? <a hreff="javascript:clsWin();" class="easyui-linkbutton"
? ? ? ? ? ? ? ? ? ? ? ? ? ? data-options="iconCls:'icon-cut'">取消</a>
? ? ? ? ? ? ? ? ? ? </td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? </table>
? ? ? ? </form>
? ? </body>
</html>


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
? ? String path = request.getContextPath();
? ? String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? ? <head>
? ? ? ? <base hreff="<%=basePath%>">
? ? ? ? <title></title>
? ? ? ? <meta http-equiv="pragma" content="no-cache">
? ? ? ? <meta http-equiv="cache-control" content="no-cache">
? ? ? ? <meta http-equiv="expires" content="0">
? ? ? ? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
? ? ? ? <meta http-equiv="description" content="This is my page">
? ? ? ? <link rel="stylesheet" type="text/css" hreff="css/themes/default/easyui.css">
? ? ? ? <link rel="stylesheet" type="text/css" hreff="css/themes/icon.css">
? ? ? ? <script type="text/javascript" srcc="js/jquery.min.js"></script>
? ? ? ? <script type="text/javascript" srcc="js/jquery.easyui.min.js"></script>
? ? ? ? <!-- 語言漢化包 -->
? ? ? ? <script type="text/javascript" srcc="js/locale/easyui-lang-zh_CN.js"></script>
? ? ? ? <script type="text/javascript">
? ? ? ? ? ? function toAdd(){
? ? ? ? ? ? var url = 'add.jsp';
? ? $('#win').window({
? ? width : 700,//寬度
? ? height : 550,//高度
? ? title : '新增',
? ? hreff : url
? ? });
? ? $('#win').window('open');//打開窗體
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? ? ? function toEdit(){
? ? ? ? ? ? //獲取選中的行
? ? ? ? ? ? var row = $('#dg').datagrid('getSelected');
? ? ? ? ? ? var id = row.id;
? ? ? ? ? ? //判斷是否選中
? ? ? ? ? ? if(! row) {
? ? ? ? ? ? $.messager.alert("提示", "請選要修改的數(shù)據(jù)", "info");
? ? ? ? ? ? } else {
? ? ? ? ? ? var url = 'gm/toEditAc.action?g.id=' + id;
? ? ? ? $('#win').window({
? ? ? ? width : 700,//寬度
? ? ? ? height : 550,//高度
? ? ? ? title : '修改',
? ? ? ? hreff : url
? ? ? ? });
? ? ? ? $('#win').window('open');//打開窗體
? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? ? ? function doDelete(){
? ? ? ? ? ? //獲取選中的行
? ? ? ? ? ? var row = $('#dg').datagrid('getSelected');
? ? ? ? ? ? var id = row.id;
? ? ? ? ? ? //判斷是否選中
? ? ? ? ? ? if(! row) {
? ? ? ? ? ? $.messager.alert("提示", "請選要刪除的數(shù)據(jù)", "info");
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? //刪除二次確認(rèn)
? ? ? ? ? ? ? ? $.messager.confirm("提示", "確定刪除" + id + "的記錄嗎?",function(re) {
? ? ? ? ? ? ? ? //re為true就表示點(diǎn)擊了確定按鈕
? ? ? ? ? ? ? ? //re為false就表示點(diǎn)擊了取消按鈕
? ? ? ? ? ? ? ? if(re) {
? ? ? ? ? ? ? ? //提交ajax執(zhí)行刪除
? ? ? ? ? ? ? ? $.ajax({
? ? ? ? ? ? ? ? url: 'gm/deleteAc.action',
? ? ? ? ? ? ? ? type: 'POST',
? ? ? ? ? ? ? ? data: {
? ? ? ? ? ? ? ? 'g.id': id
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? success: function(data){
? ? ? ? ? ? ? ? var o = JSON.parse(data);
? ? ? ? ? ? ? ? if(o.ct > 0) {
? ? ? ? ? ? ? ? $.messager.alert("提示", "刪除成功!", "info");
? ? ? ? ? ? ? ? //刷新datagrid
? ? ? ? ? ? ? ? $('#dg').datagrid('reload');
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? $.messager.alert("提示", "刪除失??!", "info");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? });
? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? ? ? function clsWin(){
? ? ? ? ? ? $('#win').window('close');
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? ? ? //提交新增表單(在add.jsp頁面調(diào)用這個方法)
? ? ? ? ? ? //通過這種方式提交表單是沒有頁面跳轉(zhuǎn)
? ? ? ? ? ? function saveGame(){
? ? ? ? ? ? //手動提交表單
? ? ? ? ? ? $('#addFrm').form('submit',{
? ? ? ? ? ? url: 'gm/addAc',
? ? ? ? ? ? onSubmit: function(){//表單驗證
? ? ? ? ? ? //this就是指當(dāng)前的表單
? ? ? ? ? ? //調(diào)用表單驗證的方法
? ? ? ? ? ? var isValid = $(this).form('validate');
? ? ? ? ? ? ? ? //if(!isValid) {
? ? ? ? ? ? ? ? // alert('驗證不通過')
? ? ? ? ? ? ? ? //}
? ? ? ? ? ? ? ? return isValid;
? ? ? ? ? ? },
? ? ? ? ? ? success: function(data){//表單提交成功以后執(zhí)行的回調(diào)函數(shù)
? ? ? ? ? ? var o = JSON.parse(data);
? ? ? ? ? ? if(o.ct > 0) {
? ? ? ? ? ? $.messager.alert("提示", "新增成功", "info");
? ? ? ? ? ? //刷新datagrid
? ? ? ? ? ? $('#dg').datagrid('reload');
? ? ? ? ? ? //關(guān)閉窗體
? ? ? ? ? ? $('#win').window('close');
? ? ? ? ? ? } else {
? ? ? ? ? ? $.messager.alert("提示", "新增失敗", "info");
? ? ? ? ? ? }
? ? ? ? ? ?
? ? ? ? ? ? }
? ? ? ? ? ? });
? ? ? ? ? ? }
? ? ? ? ? ??
? ? ? ? ? ? function editGame(){
? ? ? ? ? ? $('#editFrm').form('submit',{
? ? ? ? ? ? url: 'gm/editAc.action',
? ? ? ? ? ? onSubmit: function(){
? ? ? ? ? ? var isValid = $(this).form('validate');
? ? ? ? ? ? return isValid;
? ? ? ? ? ? },
? ? ? ? ? ? success: function(data){
? ? ? ? ? ? var o = JSON.parse(data);
? ? ? ? ? ? if(o.ct > 0) {
? ? ? ? ? ? $.messager.alert("提示", "修改成功", "info");
? ? ? ? ? ? //刷新datagrid
? ? ? ? ? ? $('#dg').datagrid('reload');
? ? ? ? ? ? //關(guān)閉窗體
? ? ? ? ? ? $('#win').window('close');
? ? ? ? ? ? } else {
? ? ? ? ? ? $.messager.alert("提示", "修改失敗", "info");
? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? });
? ? ? ? ? ? }
? ? ? ? </script>
? ? </head>
? ? <body>
? ? ? ? <table id="dg" class="easyui-datagrid" title="游戲管理模塊"?
? ? ? ? ? ? style="width:1000px;height:450px"
data-options="singleSelect:true,collapsible:true,
url:'gm/ldAllAc.action',method:'get',pagination:true,
pageList:[3,5,7,10,15],pageSize:5,toolbar:'#tb'">
<thead>
<tr>
<th data-options="field:'id',width:80">游戲ID</th>
<th data-options="field:'gname',width:100">游戲名稱</th>
<th data-options="field:'gtype',width:80,align:'right'">游戲類型</th>
<th data-options="field:'Gcomp',width:80,align:'right'">游戲公司</th>
<th data-options="field:'gyear',width:250">游戲年份</th>
</tr>
</thead>
</table>
<!-- 工具欄 -->
<div id="tb" style="padding:5px;height:auto">
? ? <div style="margin-bottom:5px">
? ? ? ? <a hreff="javascript:toAdd();" class="easyui-linkbutton"?
? ? ? ? ? ? iconCls="icon-add" plain="true" title="新增"></a>
<a hreff="javascript:toEdit();" class="easyui-linkbutton"?
? ? iconCls="icon-edit" plain="true" title="修改"></a>
<a hreff="javascript:doDelete();" class="easyui-linkbutton"?
? ? iconCls="icon-remove" plain="true" title="刪除"></a>
? ? </div>
</div>
<!-- 彈出窗體 -->
<div id="win" class="easyui-window"
data-options="modal:true,closed:true,iconCls:'icon-save', top: 20,
? ? minimizable: false,maximizable: false,collapsible: false,left: 100">
? ? </div>??
? ? </body>
</html>









加載下拉框,增刪改查的完整例子 END
例子 END
視頻和個人筆記?START



