09-用戶添加(1.5)

用戶添加技術(shù)點(diǎn):#

性別下拉列表框(固定值的下拉列表框)
角色下拉列表框(來自數(shù)據(jù)庫的角色列表)
學(xué)生演示上述功能

關(guān)鍵代碼

新增菜單項(xiàng)

{id: "splitter", text: "用戶管理", pid: "layouts",url:"/admin/user/goUser"},

controller跳轉(zhuǎn)到用戶管理頁

@RequestMapping("/goUser")
public String goMenu() {
    return "userlist";
}

userlist.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>用戶管理</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link href="<%=request.getContextPath() %>/css/demo.css" rel="stylesheet" type="text/css" />
<script src="<%=request.getContextPath() %>/js/boot.js" type="text/javascript"></script> 
</head>
<body>
<h1>用戶管理</h1>  

<div style="padding-top:5px;padding-bottom:5px;">

<input type="button" value="Add" onclick="addRow()"/> 
<input type="button" value="Remove" onclick="removeRow()" />   
<input type="button" value="Save" onclick="saveData()" style="margin-left:100px;"/>  
</div>
<div id="datagrid1" class="mini-datagrid" style="width:820px;height:250px;" 
    url="<%=request.getContextPath() %>/admin/user/adminlist"  idField="id"
    multiSelect="true" allowResize="true"
>
    <div property="columns">            
        <div type="checkcolumn"></div>            
        <div field="id" width="120" headerAlign="center" allowSort="true">用戶編號(hào)</div>                
         <div field="name" width="100" allowSort="true">用戶名稱</div>            
          <div field="sex" width="100" allowSort="true" renderer="onGenderRenderer" align="center" headerAlign="center">性別</div>  
         <div field="email" width="100" allowSort="true">郵箱</div>
         <div field="birthday" width="100" allowSort="true" dateFormat="yyyy-MM-dd">生日</div>
         <div field="roleid" width="100" allowSort="true">角色編號(hào)</div>
                                     
                        
    </div>
</div> 
<fieldset style="width:800px;border:solid 1px #aaa;margin-top:8px;position:relative;">
    <legend>員工詳細(xì)信息</legend>
    <div id="editForm1" style="padding:5px;">
        <input class="mini-hidden" name="id"/>
        <table style="width:100%;">
            <tr>
                <td style="width:120px;" >用戶編號(hào):</td>
                <td style="width:150px;"><input id="id" name="id" class="mini-textbox" readonly="readonly"/></td>
                <td style="width:120px;">用戶名稱:</td>
                <td style="width:150px;"><input id="name" name="name" class="mini-textbox" /></td>
                <td style="width:120px;">性別:</td>
                <td style="width:150px;">
                <input id="sex" name="sex" class="mini-combobox" data="Genders"/>
                </td>
            </tr>
            <tr>
                <td>郵箱:</td>
                <td><input id="email" name="email" class="mini-textbox" /></td>
                <td>生日:</td>
                <td><input id="birthday" name="birthday" class="mini-datepicker" minValue="0" maxValue="200" value="25"  /></td>
                 <td>角色編號(hào):</td>
                <td>
                <input id="roleid" name="roleid" showNullItem="true" class="mini-combobox"
        
        url="<%=request.getContextPath()%>/admin/power/getRole"  
        emptyText="請(qǐng)選擇..."
        nullItemText="請(qǐng)選擇..."
        textField="rolename" valueField="roleid"/>
                </td>
            </tr>
        </table>
    </div>
</fieldset>

<script type="text/javascript">
    var Genders = [{ id: 1, text: '男' }, { id: 2, text: '女'}];

    mini.parse();

    var grid = mini.get("datagrid1");
    grid.load();

    //綁定表單
    var db = new mini.DataBinding();
    
    db.bindForm("editForm1", grid);

    
    ///////////////////////////////////////////////////////
    function onGenderRenderer(e) {
        for (var i = 0, l = Genders.length; i < l; i++) {
            var g = Genders[i];
            if (g.id == e.value) return g.text;
        }
        return "";
    }

            
    //////////////////////////////////////////////////////
    function addRow() {
        var newRow = { name: "New Row" };
        //添加一行
        grid.addRow(newRow, 0);
        //取消選中舊的數(shù)據(jù)行
        grid.deselectAll();
        //選中新增加的數(shù)據(jù)行
        grid.select(newRow);
    }
    function removeRow() {
        //得到選中的行
        var rows = grid.getSelecteds();
         if (rows.length > 0) {
             if (confirm("確定刪除選中記錄祈远?")) {
                //定義一個(gè)數(shù)組
                 var ids = [];
                 for (var i = 0, l = rows.length; i < l; i++) {
                     var r = rows[i];
                     //循環(huán)rows,將id兩側(cè)加上單引號(hào)后放入數(shù)組
                     ids.push("'"+r.id+"'");
                 }
                 //用逗號(hào)分隔數(shù)組中的數(shù) '1','2','3'
                 var id = ids.join(',');
                 grid.loading("操作中看疙,請(qǐng)稍后......");
                 $.ajax({
                     url: "<%=request.getContextPath()%>/admin/user/del?id=" + id,
                     success: function (text) {
                         grid.reload();
                     },
                     error: function () {
                     }
                 });
             }
         } else {
             alert("請(qǐng)選中一條記錄");
         } 
        
    }
    function saveData() {
        //獲取變動(dòng)的數(shù)據(jù)
        var data = grid.getChanges();
        var json = mini.encode(data);//反序列成json數(shù)據(jù)
        grid.loading("保存中拉宗,請(qǐng)稍后......");
        //json數(shù)組
        alert(json);
        $.ajax({
            headers: {//公有配置旺韭,可以封裝復(fù)用
                'Accept': 'application/json',
                'Content-Type': 'application/json'
                },
                    url: "<%=request.getContextPath()%>/admin/user/adduser",//method是操作標(biāo)識(shí)匣掸。save update del
                data: json,
                type: "post",
                success: function (result) {
                    //alert(result.code);
                        grid.reload();
                    
                },
                error: function (jqXHR, textStatus, errorThrown) {
                alert(jqXHR.responseText);
                }
        });
    }
</script>

<div class="description">
    <h3>Description</h3>
  </div>
</body>
</html>

UserController.java

package com.neuedu.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.neuedu.module.service.IUserService;
import com.neuedu.pojo.ResultMsg;
import com.neuedu.pojo.UserList;

@Controller
@RequestMapping("/admin/user")
public class UserController {
    @Autowired
    IUserService UserServiceImpl;
    @RequestMapping("/goUser")
    public String goMenu() {
        return "userlist";
    }
    @RequestMapping("/adminlist")
    @ResponseBody
    public Map adminlist(int pageIndex,int pageSize,String key,String sortField,String sortOrder) {
        // 第一步,讀取滿足條件的記錄數(shù)
        int total = UserServiceImpl.getUserCount();
        List<UserList> list = null;
        // 如果total>0辣往,執(zhí)行第二步驼侠,查詢滿足條件的記錄數(shù)
        if (total > 0) {
            list = UserServiceImpl.getUserAll();
        }
        Map map = new HashMap();
        map.put("total", total);
        map.put("data", list);
        return map;
    }
    @RequestMapping("/adduser")
    @ResponseBody
    public ResultMsg adduser(@RequestBody UserList[] adduser,String method) {
        int i=0;
        ResultMsg msg=new ResultMsg();
        String oper=adduser[0].get_state();
        if(oper.equals("added")){
            i=UserServiceImpl.addAdminUser(adduser);
        }else if(oper.equals("modified")){
            i=UserServiceImpl.updateUser(adduser);
        }
        if(i==adduser.length){
            msg.setCode(0);
            msg.setMsg("success");
        }else{
            msg.setCode(-1);
            msg.setMsg("failure");
        }
        return msg;
    }
    @ResponseBody
    @RequestMapping("/del")
    public ResultMsg del(String id){
        int i=0;
        ResultMsg msg=new ResultMsg();
        i=UserServiceImpl.delUser(id);
        if(i>0){
            msg.setCode(0);
            msg.setMsg("success");
        }else{
            msg.setCode(-1);
            msg.setMsg("failure");
        }
        return msg;
        
    }
}

IUserService.java

public interface IUserService {
        
    public int addAdminUser(UserList[] adduser);

    public int getUserCount();

    public List<UserList> getUserAll();
    
    public int updateUser(UserList[] adduser);

    public int delUser(String id);
}

UserServiceImpl.java

@Override
public int getUserCount() {
    // TODO Auto-generated method stub
    return userMapper.getUserCount();
}
@Override
public List<UserList> getUserAll() {
    
    return userMapper.getUserAll();
}
@Override
public int addAdminUser(UserList[] adduser) {
    int i=0;
    for(UserList u:adduser){
        String id=UuidGenerateUtil.getUUID();
        u.setId(id);
        int count=userMapper.addAdminUser(u);
        i+=count;
        
    }
    return i;
}
@Override
public int updateUser(UserList[] adduser) {
    int i=0;
    for(UserList u:adduser){
        int count=userMapper.updateUser(u);
        i+=count;
    }
    return i;
}
@Override
public int delUser(String id) {
    // TODO Auto-generated method stub
    return userMapper.delUser(id);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姿鸿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子倒源,更是在濱河造成了極大的恐慌苛预,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笋熬,死亡現(xiàn)場離奇詭異热某,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胳螟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門昔馋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人糖耸,你說我怎么就攤上這事秘遏。” “怎么了嘉竟?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵邦危,是天一觀的道長。 經(jīng)常有香客問我舍扰,道長倦蚪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任边苹,我火速辦了婚禮陵且,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘个束。我一直安慰自己慕购,他們只是感情好聊疲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脓钾,像睡著了一般售睹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上可训,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音捶枢,去河邊找鬼握截。 笑死,一個(gè)胖子當(dāng)著我的面吹牛烂叔,可吹牛的內(nèi)容都是我干的谨胞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蒜鸡,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼胯努!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逢防,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤叶沛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后忘朝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灰署,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年局嘁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溉箕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悦昵,死狀恐怖肴茄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情但指,我是刑警寧澤寡痰,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站枚赡,受9級(jí)特大地震影響氓癌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贫橙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一贪婉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卢肃,春花似錦疲迂、人聲如沸才顿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽郑气。三九已至,卻和暖如春腰池,著一層夾襖步出監(jiān)牢的瞬間尾组,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工示弓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讳侨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓奏属,卻偏偏與公主長得像跨跨,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子囱皿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容