在spring boot中使用AJAX编写程序实现判断表单中的用户名是否存在完整代码
- 前端代码 在前端页面中,使用AJAX向后端发送请求,判断用户名是否存在。
<script>
function checkUsername() {
var username = document.getElementById("username").value;
if (username.trim() == '') {
alert("用户名不能为空!");
return false;
}
$.ajax({
url: "/checkUsername",
type: "POST",
dataType: "json",
data: {username: username},
success: function (result) {
if (result.code == 200) {
alert("用户名已存在!");
} else {
alert("用户名可以使用!");
}
},
error: function (result) {
alert("请求失败!");
}
});
}
</script>
- 后端代码 在后端控制器中,接收前端传来的用户名,判断是否存在,将结果返回给前端。
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping(value = "/checkUsername")
public Result checkUsername(@RequestParam String username) {
if (userService.getUserByUsername(username) != null) {
return ResultUtil.error(200, "用户名已存在!");
} else {
return ResultUtil.success("用户名可以使用!");
}
}
}
- 服务层代码 在服务层中,定义了getUserByUsername()方法,用于根据用户名查询用户信息。
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User getUserByUsername(String username) {
return userRepository.findByUsername(username);
}
}
- 数据访问层代码 在数据访问层中,定义了findByUsername()方法,用于根据用户名查询用户信息。
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
- 实体类代码 定义了User实体类,包含了用户名等属性。
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, unique = true)
private String username;
// 省略其他属性和getter/setter方法
}
- 返回结果类代码 定义了Result类,用于封装请求的返回结果。
public class Result<T> {
private Integer code;
private String message;
private T data;
// 省略getter/setter方法
}
- 返回结果工具类代码 定义了ResultUtil工具类,用于快速封装请求的返回结果。
public class ResultUtil {
public static <T> Result<T> success(T data) {
Result<T> result = new Result<>();
result.setCode(0);
result.setMessage("成功");
result.setData(data);
return result;
}
public static Result error(Integer code, String message) {
Result result = new Result();
result.setCode(code);
result.setMessage(message);
return result;
}
}
原文地址: https://www.cveoy.top/t/topic/b3eZ 著作权归作者所有。请勿转载和采集!