본문 바로가기

Frontend/jQuery & JSTL

[JSTL] include된 jsp컨트롤

반응형

이전에 include된 jsp로 parameter를 전달하려고 했지만 불가능하여 jsp안의 function을 메서드로 묶어서 표현하는 방식으로 개선

ajax로 jsp안의 function을 호출하는 방식을 사용하여 데이터를 불러오게 작성

<!-- main.jsp -->
...
<script>
...
	// 초기화 이후 ajax동작
	function selectValues(id) {
		$.ajax({
			method : "POST",
			url : "/data?filderId=" + id,
			success : function(data) {
				var params = "menuId=${menuId}&groupId=${groupId}&filterId="+id;
				console.log("initDataLoad params : " + params);
				requestAPINew(params, 'A');
				console.log(data);
				console.log(id);
				useDataInAjaxCall(id);
			},
		});
		console.log("send!");
	}
...
	// 초기화
	$(document).ready(
		function() {
			initDataLoad("A");
			...
			useDataInAjaxCall(25);
	});
...
</script>
...
	<div class="chart-map-data" id="chart-map-data" style="display: block;">
		<jsp:include page="sample.jsp" flush="true" />
	</div>
...
<!-- sample.jsp -->
...
<script>
...
	// ajax를 메서드를 이용해 컨트롤
	function useDataInAjaxCall(data){
		$.ajax({
			method: "GET",
			url: "/sidoGeoJson?year="+responseYear,
			}).done(function (sido) {
			$.ajax({
				method: "GET",
				url: "/sigunguGeoJson?year="+responseYear,
				}).done(function (sigungu) {
				$.ajax({
					method: "GET",
					url: "/data?filderId=" + data,
					}).done(function (allDatas) {
...
</script>
...

 

+ ) ajax에서의 url분리

url은 String형식이므로 ajax를 사용하기 전에 parameter값으로 분기점 생성 후 String으로 받아 분리

sampleAjaxCall(sample, fStandard);
...
var responseYear = '<%=request.getAttribute("year")%>';
...
function sampleAjaxCall(data, mdYear){
 $.ajax({
	method: "GET",
	url: "/sampleInitData?year="+responseYear,
	}).done(function (value) {
		var chk;
		if(mdYear != null){
			chk = "/sampleInitData?filterId=" + data + "&year=" + mdYear;
		}else{
			chk = "/sampleInitData?filterId=" + data + "&year=" + responseYear;
		}
		$.ajax({
			method: "GET",
			url: chk,
		}).done(function (allDatas) {
....

 

 

 

반응형