1 분 소요

공지사항 세부사항

순서

1.Mapper 처리

2.Service 처리

3.Controller 처리

4.뷰처리

1.Mapper 처리 및 테스트

  • NoticeMapper.java
	//상세페이지

	public NoticeVO Noticedetail(int nno);

    
	//  조회수
	public  void increase(int nno);


  • NoticeMapper.xml
	<!--상세페이지 -->

	<select id="Noticedetail" resultType="com.supermm.model.NoticeVO">
		select * from ANOTICE where nno = #{nno}
	</select>

        
      <!--조회수  --> 

	<update id="increase">


		update anotice set nhit = nhit +1 where nno = #{nno}


	</update>


 

2.Service 처리

  • NoticeService.java

	//상세페이지

	public NoticeVO Noticedetail(int nno);


  • NoticeServicelmpl.java
//조회수

	public NoticeVO Noticedetail(int nno) {

		noticemapper.increase(nno);
		
		return noticemapper.Noticedetail(nno);
	}

상세페이지에서 조회수 메소드를 선언하고 글 번호를 가지고 반환한다.

3.Controller 처리

  • NoticeController
	// 상세페이지

	@GetMapping("/notice-detail")

	public String Noticedetailget(int nno, Model model) throws Exception {

		model.addAttribute("list", noticeservice.Noticedetail(nno));

		return "admin/notice/notice-detail";

	}

model 객체로 데이터를 받아서 notice-detail으로 반환한다.

4.뷰처리


	<form id="detailForm" class="input-form" style="border:none"
		action="<c:url value='notice-update?nno=${list.nno}'/>" method="post">
		<table class="table">
			<tbody>
				<tr>
					<td colspan="12">
						<div class="content">
							<span class="m-2 fw-bold">번호</span> 
							<input class="w-20" value="${list.nno}" style="border:none; margin-left:20px" readonly/>
						</div>
					</td>
				</tr>
				<tr>
					<td colspan="12">
						<div class="content d-flex">
							<span class="m-2 fw-bold">제목</span>
							<input class="w-20"
								type="text" name="ntitle" value="${list.ntitle}" style="border:none; margin-left:20px" readonly/>
						</div>
					</td>
				</tr>
				<tr>
					<td colspan="12">
						<div class="content d-flex">
							<span class="m-2 fw-bold">작성자</span>
							<input class="w-20" type="text" name="nwriter_id" value="${list.nwriter_id}" readonly="readonly" style="border:none; margin-left:10px"/>
							<span class="m-2 fw-bold">조회수</span>
							<input class="w-20" type="text" name="nwriter_id" value="${list.nhit}" readonly="readonly" style="border:none; margin-left:10px"/>
						</div>
					</td>
				</tr>

				<tr>
					<td colspan="12"><textarea class="w-100" rows="20"
							name="ncontent" id="notice_textarea" style="border: none; padding:10px" readonly>${list.ncontent}</textarea>
					</td>
				</tr>
				<!-- <script>
					CKEDITOR.replace('notice_textarea');
					 CKEDITOR.editorConfig = function(config){
		                  config.enterMode = CKEDITOR.ENTER_BR;
		               };
				</script>
 -->
			</tbody>
		</table>


controller에서 넘어온 데이터 값과 맞게 el태그를 이용하여 작성한다.

		<div class="text-center ">
			<div class="text-center inputdiv">
				<a class="btn ok"  href="/notice-update?nno=${list.nno}" >수정</a>
				<a href="<c:url value='/notice-delete?nno=${list.nno}'/>" onClick="alert('삭제하시겠습니까?')"class="btn reset" >삭제</a>
				<a href="notice-list" class="btn golist">목록</a>
			</div>
		</div>
	</form>
	<form id="infoForm" action="/notice-update" method="get">
		<input type="hidden" id="nno" value='<c:out value="${list.nno}"/>'>
	</form>
</main>

버튼을 누를 시 해당 넘어 갈 수 있도록 url을 설정한다.

nno 같은 경우 사용하지 않지만 계속 필요하기 때문에 hidden을 이용하여 값을 가져간다.

댓글남기기