Asynchronous JavaScript and XML即ajax
问题:ajax是一种新的编程语言吗?
要注意的是ajax并不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的web应用程序的技术。
ajax常用于添加时判断改用户是否存在
下面来个简单的判重案例
比如:
这就是效果,思路:
要先获取到当前文本框所输入的内容,然后拿当前文本框输入的内容和数据库表中的名称去判断,如果存在就提示“已存在,不可添加”。
用到了jquery,jquery的方法有以下几种:
1、val():获取文本框中的值
2、text():获取标签之间文本的内容
3、html():获取标签之间所有内容(包含标签)
3、attr():设置被选元素的属性和值。
方法里写入内容就是设置值,没写就是获取
1、获取当前文本框输入的内容(我们可以使用jquery的方式,唯一要注意的就是不要忘了导入jquery):
①我们可以给当前文本框一个id值为name
②获取到当前文本框中的内容
③使用ajax的方式进入后台
前端代码实现如下:
2、前台ajax写完之后就传递到了后端controller层,我们可以看到上面的请求路径是ajax,所以controller层@RequestMapping(“请求路径")
①接收到前台传递过来的name值,后端用name接收
②将name属性传递到service层,去service层判断是否重复
controller层代码如下:
3、service层接收到name值后,用通用mapper查询看是否包含此数据
service层代码如下:
说到这里ajax写完了,但是我们是不是忽略一个问题,当我们姓名重复时提示了不可重复,但是还是可以点击添加进行添加的,所以我们可以加一个当姓名重复时不可以点击提交按钮进行提交
我们默认点击提交的时候值时true是可以提交的,那换一个思路当我们把值改为false是不是就不可以提交了,那我们可以定义一个变量flag,当有重复的数据把flag标记为false,否则就标记为true
我们可以给表单加一个提交事件,当提交时直接返回flag的值,这样就实现了重复时不可点击提交按钮
另外后端的方式有很多种,这里只列举了一种,还可以通过count计数
了解:
下面还例举了另一种方法,比较麻烦,是在实体类中多加了一个flag属性,通过flag的值去判断是否存在:
前端都一样。
controller和service层有所变化,如下(注意!!!:此flag非彼flag,写完才发现,希望你们不要被我搞混):
不会有人问@ResponseBody是干啥的吧!!!
默认返回的都是一个jsp页面
下面是有关方面的注解,可以参考
@controller 主要负责处理前端控制器(DispatcherServlet )发过来的请求
@RequestMapping 是一个用来处理请求地址映射的注解
@RequestParam 是从 Request 里获取参数值
@Service 用于标注业务层
@Autowired,自动装配
@Resource 通过 name 属性去匹配 bean
@ResponseBody ,会直接返回 json 或者 xml 数据。
@RequestBody 接收json或xml数据