//AjaxController코드----
package com.hi.mvc04;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class AjaxController {
@RequestMapping("movie")
public void name1(String title, int price, Model model) { //여기 값을 view에 movie.jsp에 전달해주는 역할이 Model이다.
System.out.println("ajax로 받은 데이터"+title+""+price);
double price2 = price * 0.8;
//model: 결과를 담는 views아래 까지만 데이터를 전달하고 ram에서 삭제.(session은 ram에 계속 남아있다.)
model.addAttribute("title", title);
model.addAttribute("price2", (int)(price2)); //int를 붙여주면 강제타입전환되어 소수점 사라진다.
//강제형변환(강제타입변환)==>캐스팅(casting)
}
@RequestMapping("user")
public void name2(String user, Model model) { //여기 값을 view에 movie.jsp에 전달해주는 역할이 Model이다.
System.out.println("ajax로 받은 데이터"+user);
//dao에 userid를 주면서 이미 있는지 아닌지 체크
//select * from member where id='user'
String[] list = {"apple", "melon", "summer"};
String result = "사용가능한 id입니다.";
for(String s : list) {
if(s.equals(user)) {
result = "사용불가능한 id";
}
}//for문
model.addAttribute("result", result);
}//publick void
@RequestMapping("reply")
public void name3(String reply, Model model) { //여기 값을 view에 movie.jsp에 전달해주는 역할이 Model이다.
System.out.println("ajax로 받은 데이터"+reply);
model.addAttribute("reply", reply);
}
}
===ajax2.jsp===========================
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="resources/js/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
$(function() { //dom(document object model) tree구조로 읽는다.
//=body dom tree로 ram에 읽어들인 후, function을 실행해라.
//익명함수
$('#b1').click(function() {
$.ajax({ //제이슨 표기법 ,,
url: "movie",
data: {
title: $('#title').val(),
price: $('#price').val()
},
success: function(result) {
alert(result)
$('#d2').html(result)
},
error: function() {
alert('ajax 실패.')
}//error
})//ajax
})//b1
$('#b3').click(function() {
$.ajax({ //제이슨 표기법 ,,
url: "user",
data: {
user: $('#user').val()
},
success: function(result) {
alert(result)
$('#d2').html(result)
},
error: function() {
alert('ajax 실패.')
}//error
})//ajax
})//b3
$('#b2').click(function() {
$.ajax({ //제이슨 표기법 ,,
url: "reply",
data: {
reply: $('#reply').val()
},
success: function(result) {
alert(result)
$('#d2').append(result + "<br>")
},
error: function() {
alert('ajax 실패.')
}//error
})//ajax
})//b2
})
</script>
</head>
<body>
영화제목: <input type="text" name="title" id="title">
영화관람료: <input type="text" name="price" id="price">
<button id="b1">영화 정보 제출</button>
<hr>
댓글: <input type="text" name="reply" id="reply">
<button id="b2">댓글 달기</button>
<hr color="pink">
<hr>
<hr color="pink">
아이디입력: <input type="text" name="user" id="user">
<button id="b3">아이디 중복 체크</button>
<hr color="pink">
<div id="d2"></div>
</body>
</html>
====reply.jsp================================
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%><img src="resources/img/ok.PNG" width=50 height=50>${reply}