初学JavaWeb-SSM框架实现增删改查——查

8 篇文章 0 订阅

前端代码:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<html>
<head>
    <title>mmp</title>
    <script src="../static/js/jquery-3.3.1.min.js"></script>
</head>
<body>
<form id="Login_form">
    <input placeholder="请输入用户名" name="user" id="user" type="text">
    <input placeholder="请输入密码" name="password" id="password" type="password" maxlength="8">
    <a id="Login_add" href="javascript:void(0);">注册</a>
</form>
<form id="Login_form_del">
    <input placeholder="请输入你要删除的用户名" name="user" id="del_user" type="text">
    <input placeholder="请输入你要删除的密码" name="password" id="del_password" type="password">
    <a id="Login_del" href="javascript:void (0);">删除</a>
    <a id="Login_del_two" href="javascript:void (0);">牛皮删除</a>
</form>
<form id="login_form_update">
    <input placeholder="请输入老用户名" name="oldName" type="text">
    <input placeholder="请输入新用户名" name="newName" type="text">
    <a id="login_update_btn" href="javascript:void (0);">修改</a>
</form>

    <a id="login_search" href="javascript:void (0);">查找</a>

<table>
    <c:forEach items="${userList}" var="f">
        <tr>
            <td>
                    ${f.user}
            </td>
            <td>
                    ${f.password}
            </td>
        </tr>
    </c:forEach>
</table>
<script>
    /*
    这是错误的思路和代码,引以为戒
    window.οnlοad= function(){
            $.ajax({
                url:'/demo4/demo/find',
                success:function (data) {
                        alert(1);
                }
            })
        }
      */
    //查找
    $('#login_search').click(function(){
        window.location.href="/demo4/demo/find";
    });


        //更新
    $('#login_update_btn').click(function () {
        $.ajax({
            url: '/demo4/demo/update',        //      /项目名/控制器映射/方法映射
            data: $('#login_form_update').serialize(),
            success: function (data) {
                alert("修改成功");
            }
        })
    })

    //注册
    $('#Login_add').click(function () {
        $.ajax({
            url: '/demo4/demo/add',        //      /项目名/控制器映射/方法映射
            data: $('#Login_form').serialize(),
            success: function (data) {
                if (data == "success") {
                    alert("注册成功");
                } else {
                    alert("注册失败");
                }
            }
        })
    })
    //删除
    $('#Login_del').click(function () {
        $.ajax({
            url: '/demo4/demo/del',
            data: $('#Login_form_del').serialize(),
            success: function (data) {
                if (data == "success") {
                    alert("删除成功");
                } else {
                    alert("删除失败");
                }
            }
        })
    })

    //删除两个
    $('#Login_del_two').click(function () {
        $.ajax({
            url: '/demo4/demo/del_two',
            data: $('#Login_form_del').serialize(),
            success: function (data) {
                if (data == "success") {
                    alert("成功删除");
                }
            }
        })
    })
</script>
</body>

</html>

几个注意的地方:

(一)c:forEach是属于JSTL的,要注意导入库。c:forEach示例如下:

<c:forEach var="每个变量名字"   items="要迭代的list"   varStatus="每个对象的状态"

                           begin="循环从哪儿开始"    end="循环到哪儿结束"    step="循环的步长">

                              循环要输出的东西
</c:forEach>

(二)一般要用ajax方法的,都是@ResponseBody接返回的值,由于我错误的使用了ajax方法,导致我一直没显示数据苦恼了一晚上。基础还是很重要的。

后端代码:

package com.xudan.demo4.controller;
import com.xudan.demo4.mapper.UserMapper;
import com.xudan.demo4.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.UUID;

@Controller
@RequestMapping("/demo")        //控制器映射
public class DemoController {
    @Autowired          //自动装配
    private UserMapper userMapper;




    //重定向指向的方法,用来进行跳转到INF内的index.jsp
    @RequestMapping("index")
    public String index(Model model){
        List<User> userList = userMapper.selectAll(new User());
        model.addAttribute("userList", userList);
        return "index";
    }


    @RequestMapping("add")      //方法映射
    @ResponseBody
    public String add(User user) {
        //随机ID
        user.setId(UUID.randomUUID().toString().replace("-", ""));
        if(user.getUser().length()!=0 && user.getPassword().length()!=0){       //判断用户名和密码是否空
            userMapper.insert(user);                                            //向数据库里加入内容
            return "success";
        }else {
            return "fail";
        }
    }

    @RequestMapping("del")
    @ResponseBody
    public String del(User user){
        userMapper.deleteByName(user);              // deleteByName是自己定义的方法
        return "success";
    }

    @RequestMapping("del_two")
    @ResponseBody
    public String del_two(User user){
        userMapper.deleteByNameAndPassword(user);
        return "success";
    }

  /*  @RequestMapping("find")
    @ResponseBody
    public String find(User user){
        if(user.getUser()==null || user.getUser().equals("")){
            return "fail";
        }
        if(user.getPassword()==null || user.getPassword().equals("")){
            return "fail";
        }
       List<User> users = userMapper.selectAll(user);
        if(users.size()>0){
            return "success";
        }else {
            return "fail";
        }
    }*/

    //修改更新
    @RequestMapping("update")
    public String update(String oldName,String newName){
        userMapper.updateByName(oldName,newName);
        return "index";
    }

    //查
    @RequestMapping("find")
    public String find(Model model) {
       /* 根据条件查找
        User user = new User();
        user.setUser("zc");
        */
        List<User> userList = userMapper.selectAll(new User());     //实例化一个User空对象
        model.addAttribute("userList", userList);               //将userList放入model传给前端
        System.out.println(userList);
        return "index";
    }

//    @RequestMapping("load")
//    @ResponseBody
//    public String load(User user){
//        List<User> users = userMapper.selectAll(user);
//
//        if (users.size() > 0) {
//            return "success";
//        } else {
//            return "fail";
//        }
//    }
}



几个注意的地方:

(一)页面尽量放在INF文件夹中,因为INF文件夹中的页面不能直接被访问,需要控制器跳转,所以会更加安全
重定向代码如下:
<%
response.sendRedirect("/demo4/demo/index");
%>





如果要根据特定的条件来查找,代码如下:

    @RequestMapping("find")
    public String find(Model model) {
        User user = new User();
        user.setUser("zc");
        List<User> userList = userMapper.selectAll(user);     
        model.addAttribute("userList", userList);               //将userList放入model传给前端
        return "index";
    }
如果User为空的情况下就是查所有,否则按照条件查找


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值