티스토리 뷰
지난 포스팅은 html 및 js를 다뤘다.
이어서 백엔드를 진행해보려한다.
xhr.open('POST', '/auth/admin/manage/board_list', true);
js에서 getBoardList라는 함수를 실행하고
해당 URL에 POST방식으로 요청을 보낸다.
1.Controller
@ResponseBody
@RequestMapping(value = [("/auth/admin/manage/board_list")], method = [(RequestMethod.POST)])
@Throws(Exception::class)
fun adminBoardSelectList(param : SearchModel) : JSONObject {
return service.adminBoardSelectList(param)
}
js에서 요청한 URL을 @RequestMapping에 담아두고, POST방식도 잊지말고 작성한다.
파라미터 :(param : BoardModel)는
data class BoardModel(
val board_id: String ? = null,
val board_seq: String ? = null,
var userid: String ? = null,
val title: String ? = null,
val contents: String ? = null,
val regdt: String ? = null,
val upddt: String ? = null,
val is_del: Int ? = null,
val board_title: String ? = null,
val board_cont: String ? = null,
)
이렇게 지정해두었다.
보내고싶은 파라미터를 Model 형식에 맞춰 작성해야한다.
이후 Controller에서는 Service로 요청을하고,
2. Service
fun adminBoardSelectList(param : SearchModel) : JSONObject {
val jsono = JSONObject()
try {
val listdata = mapper.adminBoardSelectList(param, session.getAttribute("userid").toString())
jsono["RESULT"] = "OK"
jsono["LIST"] = listdata
jsono["MESSAGE"] = "조회에 성공하였습니다."
} catch (e : Exception) {
logger.error("ERROR : " + e)
jsono["RESULT"] = "ERROR"
jsono["MESSAGE"] = "조회에 실패했습니다."
}
return jsono
로직은 Service에 작성했다.
웹 화면에서 따로 userid를 파라미터로 전하지않는다.
로그인을 처리할때 Spring Security3로 userid를 session에 담기때문에
userid는 세션에 저장된 값을 param으로 추가해 mapper로 보내도록 작성했다.
형식은 JSONObject으로 결과를 받을생각이고
[LIST]에 쿼리의 결과를 담으려한다.
따로 param에 userid를 담지않았기때문에,
mapper.adminBoardSelectList([1 : param] , [2 : session에서 갖고오는 userid값]) 이렇게 설정했다.
3.Mapper / Mapper.xml
@Mapper
interface AdminMapper {
fun adminBoardSelectList(param: SearchModel, @Param("userid") userid :String): List<BoardModel>)
}
<select id="adminBoardSelectList" parameterType="com.steamchk.ekeprl.www.auth.admin.model.SearchModel"
resultType="com.steamchk.ekeprl.www.common.model.BoardModel">
/*CommonMapper.adminBoardSelectList*/
SELECT UB.BOARD_SEQ
, UB.BOARD_ID
, UB.USERID
, UB.TITLE
, UB.CONTENTS
, UB.REGDT
, UB.IS_DEL
FROM USER_BOARD UB
ORDER BY BOARD_SEQ DESC
</select>
각각 id를 잘 맞추고
쿼리를 실행하는데 필요한 parameterType는 SearchModel이라는 통합 검색 Model을 만들어 사용하고,
** SearchModel**
data class SearchModel(
var keywordsA : String ? = null, //검색단어1
var keywordsB : String ? = null, //검색단어2
var keywordsC : String ? = null, //검색단어3
var regDate : String ? = null, //등록일
var modDate : String ? = null, //수정일
var userid : String ? = null, //아이디
)
종합 검색Model을 만들어
비슷한 검색모델을 여러개 만들지 않으려고한다.
select 쿼리의 결과는 앞전에 설명한 BoardModel을 이용한다.
해당 작업이 문제없이 이루어지면
웹페이지에서는
게시판 조회기능 (1)의 시작 사진인

이 화면이 나오게된다.
이상 게시판 조회기능 포스팅을 마치도록하겠다.
- Total
- Today
- Yesterday
- GitHub
- securityconfig
- AI
- dependencies
- jwt
- gradle
- InetAddress
- Powershell
- Column count doesn't match value count at row 1
- ubuntu
- insert
- CRUD
- MariaDB
- Git
- Postman
- kotlin
- 서버호스트
- Insert오류
- dbeaver
- 백엔드
- Spring Security
- spring ai
- springsecurity
- 게시판
- 의존성
- null
- 특일정보
- 명령줄이 너무 깁니다
- JAR매니패스트
- session저장
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |