2021-07-28SSM实现查看列表和ajax验证用户名是否重复

本文档描述了如何使用Spring、SpringMVC和MyBatis(SSM)框架搭建项目,并实现Ajax无刷新验证用户名是否重复的功能。从新建Maven项目开始,逐步讲解配置XML文件、引入依赖、编写DAO、Service、Controller以及前端页面,最终实现列表展示和用户名验证。过程中遇到了控制器响应类型问题和Ajax数据传递问题,通过调整注解和前端脚本解决了这些问题。
摘要由CSDN通过智能技术生成

实现SSM实现查看列表和ajax验证用户名是否重复

1.新建maven项目

2.在pom中导包war

3.创建webapp路径,配置xml文件

4.导包 json jstl spring springmvc jsp junit log freemarker

5.web.xml

6.中文乱码,核心servlet,过滤器

7.application.xml

8.扫描

9.新建jdbc,加载属性文件

10.创建包dao,dao.xml

package com.pro.dao;

import com.pro.domain.User;

import java.util.List;

public interface UserDao {

    public List<User> selectUser();

    public User selectUserByName(String name);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pro.dao.UserDao">

    <select id="selectUser" resultType="user">
        select * from user
    </select>
    <select id="selectUserByName" resultType="user" parameterType="String">
        select * from user where username=#{name}
    </select>

</mapper>

11.mvc注解 mvc静态default 数据源Duir freemaker sqlSessionFactoryBean 改名

12.创建service的接口和实现类

package com.pro.service;

import com.pro.domain.User;

import java.util.List;

public interface UserService {
    public List<User> getUsers();

    public Boolean getUserName(String name);
}
package com.pro.service;

import com.pro.dao.UserDao;
import com.pro.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public List<User> getUsers() {
        List<User> usersList = userDao.selectUser();
        return usersList;
    }

    @Override
    public Boolean getUserName(String name) {
        User users = userDao.selectUserByName(name);
        if (users == null) {
            return true;
        } else {
            return false;
        }

    }
}

13.控制器

package com.pro.controller;

import com.pro.domain.User;
import com.pro.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/getUsers")
    public ModelAndView getUsers() {
        ModelAndView mav = new ModelAndView("/index");
        List<User> usersList = userService.getUsers();
        mav.addObject("usersList", usersList);
        return mav;
    }
    @GetMapping("/checkName")
    @ResponseBody
    public String checkName(String userName){
        Boolean userName1 = userService.getUserName(userName);
        if(userName1==true){
            return "keyi";
        }else{
            return "buxing";
        }
    }
}

14.新建index.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="/jason/js/jquery-3.6.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#userName").blur(function () {
                $.ajax({
                    url: 'checkName',
                    type: 'get',
                    dataType: 'text',
                    data: $('#frm').serialize(),
                    success: function (result) {
                        $('#info').text(result);
                    }
                })
            });
        });
    </script>
</head>
<body>

用户列表:<br>
<#list usersList as user>
    ${user.userId}+${user.userName}+${user.userName}<br>
</#list>
<br>

<form action="" id="frm">
    username:
    <input type="text" id="userName" name="userName"/>
    <span id="info"></span>
</form>
</body>
</html>

 

 项目基本实现要求,遇到的困难在

1.控制器中第二个方法缺少@ResponseBody

@ResponseBody

作用: 

      该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:

      返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

那么只需删除注解:@ResponseBody 便可以返回页面pay/success.jsp。而且达到了与客户端后台交互的效果。

2.index无法把输入框的值传到控制器

<input type="text" id="userName" name="userName"/>
public String checkName(String userName) {
    Boolean user = userService.getUserName(userName);
   
}

实际上传入文本框的name ——userName 到控制器的方法 

String userName即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值