본문 바로가기

프로그래밍/Spring

[jqGrid] jqGrid + Spring + myBatis




Spring + jqGrid





GridTestMapper.xml




GridTestVO / GridTestResultVO

public class GridTestVO {

	private int bno;
	private String title;
	private String content;
	private String writer;
	private String cnt;
	private String regdate;
	private String enabled;
	
	public int getBno() {
		return bno;
	}
	public void setBno(int bno) {
		this.bno = bno;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public String getCnt() {
		return cnt;
	}
	public void setCnt(String cnt) {
		this.cnt = cnt;
	}	
	public String getRegdate() {
		return regdate;
	}
	public void setRegdate(String regdate) {
		this.regdate = regdate;
	}
	public String getEnabled() {
		return enabled;
	}
	public void setEnabled(String enabled) {
		this.enabled = enabled;
	}
}
public class GridTestResultVO extends GridTestVO {

	private int rnum;
	private int total;
	private int page;
	private int records;
	private List rows;
    
	public int getRnum() {
		return rnum;
	}
	public void setRnum(int rnum) {
		this.rnum = rnum;
	}
	public int getTotal() {
		return total;
	}
	public void setTotal(int total) {
		this.total = total;
	}
	public int getPage() {
		return page;
	}
	public void setPage(int page) {
		this.page = page;
	}
	public int getRecords() {
		return records;
	}
	public void setRecords(int records) {
		this.records = records;
	}
	public List getRows() {
		return rows;
	}
	public void setRows(List rows) {
		this.rows = rows;
	}
}



GridTestDAO / GridTestDAOImpl

public interface GridTestDAO {

	public List getAllBoard(HashMap hashMap);
}
@Repository
public class GridTestDAOImpl implements GridTestDAO {
	
	@Inject
    SqlSession sqlSession;
    
    private static String namespace = "com.kiosk.mapper.articleB";
    
    @Override
	public List getAllBoard(HashMap hashMap){
    	return sqlSession.selectList(namespace+".getAllBoard", hashMap);
    };
}



GridTestService / GridTestServiceImpl

public interface GridTestService {

	public List getAllBoard(HashMap hashMap);
}
@Service
public class GridTestServiceImpl {
	
	@Inject
	GridTestDAO GridTestDAO;
	
	public List getAllBoard(HashMap hashMap) {        
        return GridTestDAO.getAllBoard(hashMap);
    }
}



Controller

@Controller
public class GridTestController {

	private final Log logger = LogFactory.getLog(getClass());

	@Autowired
	GridTestServiceImpl jsonService;

	@RequestMapping(value = "/boardList", method = RequestMethod.POST)
	public @ResponseBody Object getUserList(HttpServletRequest request,
			HttpServletResponse response, @RequestParam boolean _search,
			@RequestParam long nd, @RequestParam int rows,
			@RequestParam int page, @RequestParam String sidx,
			@RequestParam String sord) throws JsonGenerationException,
			JsonMappingException, IOException {

		logger.debug("search = " + _search + " : nd = " + nd + " : rows = "
				+ rows + " : pages = " + page + " : sidx = " + sidx
				+ " : sord =" + sord);

		HashMap params = new HashMap();
		int start = ((page - 1) * rows) + 1;
		int limit = (start + rows) - 1;
		
		System.err.println("start = " + start + " : limit =" + limit);
		params.put("start", start);
		params.put("limit", limit);

		List jsonExtList = jsonService.getAllBoard(params);
		

		ObjectMapper mapper = new ObjectMapper();

		Map modelMap = new HashMap();
		// total = Total Page
		// record = Total Records
		// rows = list data
		// page = current page

		double total = (double) jsonExtList.get(0).getTotal() / rows;
		System.err.println(total);
		modelMap.put("total", (int) Math.ceil(total));
		modelMap.put("records", jsonExtList.get(0).getTotal());
		modelMap.put("rows", jsonExtList);
		modelMap.put("page", page);
		String value = mapper.writeValueAsString(modelMap);
		logger.debug(value);
		System.err.println(value);
		return jsonExtList;
	}
	

	@RequestMapping(value = "/boardEdit", method = RequestMethod.POST)
	public String userCreate(JSONtestVO JSONtestVO, @RequestParam String oper) {

		logger.debug(oper);
		logger.debug(GridTestVO.getBno() + " : " + GridTestVO.getTitle() + " : "
				+ GridTestVO.getContent() + " : " + GridTestVO.getRegDate() + " : " + GridTestVO.getCnt());

		int resultValue = 0;

		if (oper.equals("edit")) {
			resultValue = jsonService.update(GridTestVO);
		} else if (oper.equals("del")) {
			resultValue = jsonService.deleteUser(GridTestVO);
		} else if (oper.equals("add")) {
			resultValue = jsonService.saveUser(GridTestVO);
		}

		return "/boardList";
	}
}



JSP부분







		$.extend($.jgrid.edit, {
			closeAfterAdd : true,
			recreateForm : true,
			reloadAfterSubmit : false,
			left : 100,
			top : 100,
			dataheight : '100%',
			width : 500,
			addCaption : "추가",
			editCaption : "편집",
			bSubmit : "저장-전송",
			bCancel : "취소",
			bClose : "닫기",
			saveData : "Data has been changed! Save changes?",
			bYes : "Yes",
			bNo : "No",
			bExit : "Cancel"
		});
	});