Service

	// 상세화면
	public BoardVO selectNBoardDetail(int unq) throws Exception; 
	
	// 조회수 증가
	public int updateNBoardHits(int unq) throws Exception;

 

 

SQL.xml

	<select id="boardDAO.selectNBoardDetail" resultClass="boardVO">
		select unq, title, name, content, DATE_FORMAT(rdate, '%Y-%m-%d')as rdate 
		from nboard 
		where unq = #unq#
	</select>
	
	<update id="boardDAO.updateNBoardHits">
		update nboard
		set hits = hits + 1
		where unq = #unq#
	</update>

 

Controller

	@RequestMapping("/boardDetail.do")
	public String selectNBoardDetail(BoardVO vo, ModelMap model) throws Exception {
		
		// 조회수 
		boardService.updateNBoardHits(vo.getUnq());
		
		// 상세보기
		BoardVO boardVO = boardService.selectNBoardDetail(vo.getUnq());
		
		String content = boardVO.getContent(); // \n
		boardVO.setContent(content.replace("\n", "<br>" ));
		
		
		model.addAttribute("boardVO", boardVO);
		
		return "board/boardDetail";
	}

 

 

JSP ( List : 제목 클릭시 이동 )

			<td align="left" width="40%">
			<a href="boardDetail.do?unq=${result.unq }">
			<c:out value="${result.title }" />
			</a>
			</td>

 

JSP ( Detail.jsp )

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c"      uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form"   uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ui"     uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<% pageContext.setAttribute("newline", "\n"); %>
<c:set var="content" value="${fn:replace(boardVO.content, newline, '<br>') }"  />
<!-- 개행 문자(\n)를 HTML에서 사용 가능한 줄바꿈(<br>)으로 변경 --> 
 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="/eGovFrame_Web_project/script/jquery-1.12.4.js"></script>
<script src="/eGovFrame_Web_project/script/jquery-ui.js"></script>
</head>

<style>

body {
	font-size: 9pt;

}

button {
	font-size: 9pt;

}

table {
	width: 600px;
	border-collapse: collapse;
	
}

th,td {
	border: 1px solid #cccccc;
	padding: 3px;

}

.input1 {
	width: 98%;
}

.textarea {
		width: 98%;
		height: 100px;
}

</style>

<script>

$(function(){

	$("#title").val("제목입력");
	
})


//jquery 방식
function fn_submit() {
	
	// 앞뒤 공백 제거 $.trim ( 자바스크립트는 없고 jquery만 지원 )

	if( $.trim($("#title").val()) == ""){

		
		alert("제목을 입력해주세요!");
		$("#title").focus();//input 입력칸으로 이동
		return false;
		
	}
	
	$("#title").val($.trim($("#title").val()) );
	
	if( $.trim($("#pass").val()) == ""){
		
		alert("암호를 입력해주세요!");
		$("#pass").focus();
		return false;
		
	}
	
	$("#pass").val($.trim($("#pass").val()) );
	
	
// ajax(비동기전송방식의 기능을 가지고 있는 jquery의 함수)
	var formData = $("#frm").serialize();
	
	$.ajax({ 
		
		type:"POST",
		data:formData,
		url:"boardWriteSave.do",
		dataType:"text", // 리턴 타입 
		
		success:function(data){ // controller에서 => "ok"값을 던져줬으면 성공
			
			if(data == "ok"){
				alert("저장완료");
				location="boardList.do"
			}else{
				alert("저장실패");
			}
			
		},
		error:function() { // 장애발생
			
			alert("오류발생")
			
		}
		
	});
	
	
// 자바스크립트
/* 	if(document.frm.title.value == ""){
		alert("제목을 입력해주세요!");
		document.frm.title.focus();
		return false;
	}
	
	if(document.frm.pass.value == ""){
		alert("암호를 입력해주세요!");
		document.frm.pass.focus();
		return false;
	} */
	
	//document.frm.submit(); // 동기전송방식
	
	
	
}

</script>

<body>

<form id="frm">  <!-- method="post" action="boardWriteSave.do" 비동기 방식에는 필요없음 -->
<table>
	<caption>게시판 상세</caption>
	
	<tr>
		<th width="20%">제목</th>
		<td width="80%">${boardVO.title }</td>
	</tr>

	<tr>
		<th>글쓴이</th>
		<td>${boardVO.name }</td>
	</tr>
	
	<tr>
		<th>내용</th>
		<td height="50">
		<!-- 개행 자바 코드 사용  -->
		${boardVO.content }
		<!-- 개행 JSTL  -->
		<%-- ${content } --%>
		</td>
	</tr>
	
	<tr>
		<th>등록일</th>
		<td>${boardVO.rdate }</td>
	</tr>
	
		<tr>
		<th colspan="2">
		<button type="submit" onclick="fn_submit() ;return false;">저장</button>
		<button type="reset">취소</button>
		</th>
		
	</tr>
</table>	
</form>

</body>
</html>

 

개행문자( \n ) 를 HTML에서 사용 가능한 줄바꿈 <br>으로 변경 처리

 

JAVA 컨트롤러에서 처리 replace 사용

boardVO.setContent(content.replace("\n", "<br>" ));

${boardVO.content }

 

JSTL 처리 방법

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<% pageContext.setAttribute("newline", "\n"); %>
<c:set var="content" value="${fn:replace(boardVO.content, newline, '<br>') }"  />

		<!-- 개행 JSTL  -->
		<%-- ${content } --%>

'전자정부프레임워크' 카테고리의 다른 글

CSV파일_MySQL_우편번호  (1) 2024.01.15
검색 기능 + 페이징 처리  (1) 2024.01.06
행 번호 관련  (0) 2024.01.06
오라클, MySQL 페이징 쿼리문 + iBATIS  (0) 2024.01.05
log4j2.xml  (2) 2024.01.04

+ Recent posts