336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1. 화면단
2. 서버단( Controller, Service, Dao )
//이전글
$("#preDoc").on("click",function(){
_this.preNextDoc('pre');
});
//다음글
$("#nxtDoc").on("click",function(){
_this.preNextDoc('next');
});
preNextDoc : function(flag){
var _this = this;
var params = {
docnum : _this.docnum,
brdCode : _this.brdCode,
brdType : _this.brdType,
flag : flag, //pre,nxt
viewFlag : _this.viewFlag
}
$.ajax({
type:"POST",
url: ePortalConfig.boardContext+"/preNextDoc",
dataType: "json",
data : params,
cache : false,
success : function(res){
//이하 생략
//컨트롤러에서 파라미터 및 권한처리 //서비스단에서 비즈니스로직 처리를 하지만 //예제소개로는 필요없는 부분이니 생략하겠습니다. //Controller @RequestMapping(value = "/preNextDoc") public @ResponseBody Map preNextDoc(HttpServletRequest req) { // TODO //파라미터 체크 생략 Map result = new HashMap(); //권한처리 생략 result = boardService.preNextDoc(param); return result; } //Service public Map preNextDoc(DataEntity param) { Map resultObject = new HashMap(); List result = new ArrayList(); try{ //구분값에 따라 분기처리 if( "pre".equals(param.getString("flag"))){ result = boardDao.getPreDocNum(param); }else{ result = boardDao.getNextDocNum(param); } resultObject.put(EppltConstants.RESULT_ITEM, result ); resultObject.put(EppltConstants.RESULT_CODE, "200"); }catch(EpptlException e){ resultObject.put(EppltConstants.RESULT_CODE, "500"); resultObject.put(EppltConstants.RESULT_MESSAGE, e.getMessage()); } return resultObject; } //DAO public List getPreDocNum(DataEntity param) { return sqlSession.selectList("BoardSql.getPreDocNum",param); } public List getNextDocNum(DataEntity param) { return sqlSession.selectList("BoardSql.getNextDocNum",param); }
3. 쿼리(ORACLE)
/SQL
//현재 보고있는 게시글번호보다 작은 게시글번호를 애들중에서 가장 큰 값을 찾으면 된다.
//이전게시글 찾기
select DOC_NUM
from T_DOCUMENT
WHERE 1=1
and DOC_NUM IN (
SELECT MAX(DOC_NUM)
FROM T_DOCUMENT A, V_USER B
WHERE 1=1
and A.WRITE_USER_ID = B.OM_NO
and A.DOC_STATUS='100'
and TO_CHAR(sysdate,'YYYYMMDDHH24MISS') - TO_CHAR(A.DOC_START_DATE) > 0 /* 예약게시글 제외*/
and TO_CHAR(sysdate,'YYYYMMDDHH24MISS') - TO_CHAR(A.DOC_END_DATE) < 0 /* 예약게시글 제외*/
and A.DOC_NUM < #{docnum}
)
//현재 보고있는 게시글번호보다 큰 게시글번호를 애들중에서 가장 작은 값을 찾으면 된다.
//다음게시글 찾기
select DOC_NUM
from T_DOCUMENT
WHERE 1=1
and DOC_NUM IN (
SELECT MIN(DOC_NUM)
FROM T_DOCUMENT A, V_USER B
WHERE 1=1
and A.WRITE_USER_ID = B.OM_NO
and A.DOC_STATUS='100'
and TO_CHAR(sysdate,'YYYYMMDDHH24MISS') - TO_CHAR(A.DOC_START_DATE) > 0 /* 예약게시글 제외*/
and TO_CHAR(sysdate,'YYYYMMDDHH24MISS') - TO_CHAR(A.DOC_END_DATE) < 0 /* 예약게시글 제외*/
and A.DOC_NUM > #{docnum}
)
'Framework > Spring' 카테고리의 다른 글
Spring Boot Annotation 정리 (0) | 2019.09.03 |
---|---|
No converter found for return value of type: class java.util.HashMap 에러 해결방법 (0) | 2019.01.22 |
spring log4j 설정방법 (WARN Please initialize the log4j system properly) (0) | 2018.12.12 |
BeanCreationException 에러 해결방법 (0) | 2018.12.12 |
No mapping found for HTTP request with URI in DispatcherServlet with name 에러 해결방법 (0) | 2017.05.30 |