저는 Spring-mvc로 프로젝트를 만들고 있습니다. DB데이터 출력은 DAO와 Controller로 구성했고
뷰는 js와 jsp로 이루어져 있습니다.
여기서 문제는 Controller에서 출력하는 값을 어떻게 js파일로 옮기느냐 입니다. ajax로 해결을 짓고자 했지만
방법을 모르겠습니다. 많은 도움 부탁드립니다.
DAO.java
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.stereotype.Service;
import net.point.service.game.config.SqlSessionFactoryDao;
@Service
public class ADao {
private SqlSessionFactory sqlSessionFactory;
public ADao() {
sqlSessionFactory = SqlSessionFactoryDao.getSqlSessionFactory();
}
public List<Map<Object,Object>> selectAllPayment() {
SqlSession session = sqlSessionFactory.openSession();
List<Map<Object,Object>> payments = new ArrayList<Map<Object, Object>>();
try {
payments = session.selectList("AdminPaymentDao.selectAllPayment");
System.out.println("payments: " + payments);
System.out.println("-----------------------------------------------------");
}catch (Exception error) {
error.printStackTrace();
} finally {
session.close();
}
return payments;
}
}
Controller.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import ch.qos.logback.classic.Logger;
import net.point.service.game.admin.payment.collection.ADao;
@Controller
public class Controller {
private static Logger logger = (Logger) LoggerFactory.getLogger(AdminPaymentController.class);
@Autowired
ADao aDao;
@ResponseBody
@RequestMapping(value="/adminRequestCharge", method = RequestMethod.POST)
public Map<String, Object> selectAllPayment() {
Map<String, Object> result = new HashMap<String, Object>();
logger.info("selectAllPayment start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("gggggggggggggggggggggggggggggggggggggggggggggg");
try {
List<Map<Object, Object>> resultList = new ArrayList<Map<Object, Object>>();
resultList = aDao.selectAllPayment();
for (Object list : resultList) {
System.out.println("resultList:" + resultList);
}
result.put("jqgrid_data", resultList);
}catch (Exception error) {
error.printStackTrace();
}
return result;
}
}
js 파일
$(function(){
//ajax
$("#chargeRequestList").submit(function() {
let queryData = $(this).serialize();
$.ajax({
url:"/adminRequestCharge",
type: "POST",
dataType: "json"
data: queryData
success: function(result) {
console.log(result);
}
})
})
setRequestList(jqgrid_data);
// grid resize
$(window).on('resize.jqGrid', function() {
$("#chargeRequestList").jqGrid('setGridWidth', $(".grid-cover").width());
})
});
function setRequestList(jqgrid_data){
jQuery("#chargeRequestList").jqGrid({
data : jqgrid_data,
...
내가 뷰에 넣어야할 데이터의 모습입니다.
var jqgrid_data = [{
seq: '1512',
status : '0',
value : '10,000',
purchase_means : '1001',
paid : '20',
reg_date : '2019-06-24 12:43:33',
pay_status : '0',
paid_date : '2019-06-08 10:33:23',
func : '1'
},
{
...
}