前言
设计模式是我们编程道路上绕不开的一环,用好了设计模式能够让代码拥有良好的维护性、可读性以及扩展性,它仿佛就是“优雅”的代名词,各个框架和库也都能见到它的身影。
正是因为它有种种好处,所以很多人在开发时总想将某个设计模式用到项目中来,然而往往会用得比较别扭。其中一部分原因是业务需求并不太符合所用的设计模式,还有一部分原因就是在Web项目中我们对象都是交由Spring框架的Ioc容器来管理,很多设计模式无法直接套用。那么在真正的项目开发中,我们就需要对设计模式做一个灵活的变通,让其能够和框架结合,在实际开发中发挥出真正的优势。
applicationContext.xml
:记得加 静态资源过滤 和 注解驱动配置。
<beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
xmlns:context=“http://www.springframework.org/schema/context”
xmlns:mvc=“http://www.springframework.org/schema/mvc”
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package=“com.yusael.controller”/>
mvc:default-servlet-handler/
mvc:annotation-driven/
<bean class=“org.springframework.web.servlet.view.InternalResourceViewResolver”
id=“internalResourceViewResolver”>
编写一个 AjaxController
:
@RestController
public class AjaxController {
@RequestMapping(“/ajax1”)
public void ajax1(String name, HttpServletResponse response) throws IOException {
if (“admin”.equals(name)) {
response.getWriter().write(“true”);
} else {
response.getWriter().write(“false”);
}
}
}
编写 index.jsp
测试:
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
<%–onblur:失去焦点触发事件–%>
用户名:
[](()Ajax 执行流程
[](()Ajax 异步加载数据案例
================================================================================
首先写一个实体类 User
:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private int age;
private String sex;
}
在 Controller 中获取一个集合对象,展示到前端页面:
@RequestMapping(“/ajax2”)
public List ajax2() {
List list = new ArrayList<>();
list.add(new User(“zhenyu”, 21, “男”));
list.add(new User(“yusael”, 99, “男”));
list.add(new User(“hahaha”, 18, “女”));
return list; // 由于@RestController注解, 将list转成json格式返回
}
前端页面:ajaxtest.jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
[](()Ajax 验证用户名密码
===============================================================================
思考一下:我们平时登录时,输入框后面的实时提示是怎么做到的?
Controller
:
@RequestMapping(“/ajax3”)
public String ahax3(String name, String pwd) {
String msg = “”;
if (name != null) {
if (“admin”.equals(name)) {
msg = “OK”;
} else {
msg = “用户名有误!”;
}
}
if (pwd != null) {
if (“123456”.equals(pwd)) {
msg = “OK”;
} else {
msg = “密码输入有误!”;
}
}
return msg;
}
前端页面 login.jsp
:
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
用户名:
密码:
注:记得处理 JSON 乱码!
applicationContext.xml
中加入以下代码:
mvc:annotation-driven
<mvc:message-converters register-defaults=“true”>
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java优秀开源项目:
- ali1024.coding.net/public/P7/Java/git
最后
作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料
mvc:annotation-driven
<mvc:message-converters register-defaults=“true”>
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java优秀开源项目:
- ali1024.coding.net/public/P7/Java/git
最后
作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料
[外链图片转存中…(img-VPUonL0f-1649668448569)]
[外链图片转存中…(img-MpwfXoPE-1649668448570)]