일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 숫자형식오류
- 데이터베이스
- DoitSQL입문
- dbms
- 웹 브라우저 전쟁
- SQL
- 자바 오류
- 숫자 형식
- 함수
- DoIt
- 배열 예제
- 우아한테크
- 크롤링 오류
- 키-값 데이터베이스
- html
- DoitSQL
- 생성자
- 자바 예외
- 예외
- SQL입문
- R1C3
- 페이지분석
- 예제
- 배열 3요소
- Doit입문SQL
- 크롤링
- 자바
- HTML역사
- 함수 선언
- 웹브라우저 수용도
Archives
- Today
- Total
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 숫자형식오류
- 데이터베이스
- DoitSQL입문
- dbms
- 웹 브라우저 전쟁
- SQL
- 자바 오류
- 숫자 형식
- 함수
- DoIt
- 배열 예제
- 우아한테크
- 크롤링 오류
- 키-값 데이터베이스
- html
- DoitSQL
- 생성자
- 자바 예외
- 예외
- SQL입문
- R1C3
- 페이지분석
- 예제
- 배열 3요소
- Doit입문SQL
- 크롤링
- 자바
- HTML역사
- 함수 선언
- 웹브라우저 수용도
Archives
- Today
- Total
프로그래밍
[Spring] day63 : 테스트계정 / 검색 예제 본문
728x90
반응형
2023.08.07.월
테스트계정 / 검색 예제
현재까지 학습한 내용인 Spring MVC 방식으로 테스트계정과 검색 예제를 구현해보자
[@ModelAttribute("이름")]
VIEW에서 사용할 데이터를 세팅하려는 목적으로 활용하는 @(어노테이션)
@Controller 파트에서 해당 @을 사용하면
@RequestMapping보다 먼저 수행된다
※ 가장 먼저 실행된다는 특징이 있다
해당 방식을 사용할시 무슨 검색이 되어야하는지 VIEW가 몰라도 괜찮아진다
DB 구조를 모르더라도 VIEW 구현이 가능해진다
request라는 NOT POJO인 무거운 객체를 쓰지 않을 수 있다는 장점 또한 있다
단, VO에 tmp 멤버변수를 생성하는것이 보편적인 방식이다
@Controller
public class MainController {
@ModelAttribute("searchMap")
public Map<String,String> searchMap(){
Map<String,String> map=new HashMap<String,String>();
map.put("제목", "TITLE");
map.put("작성자", "WRITER");
return map;
}
@RequestMapping(value="/main.do")
public String main(@ModelAttribute("mem")MemberVO mVO, BoardVO bVO, BoardDAO bDAO, Model model) {
System.out.println("searchCondition: "+bVO.getSearchCondition());
System.out.println("searchContent: "+bVO.getSearchContent());
mVO.setMid("test");
mVO.setMpw("1234");
System.out.println("MainController 로그");
// model.addAttribute("mem", mVO);
model.addAttribute("datas", bDAO.selectAll(bVO));
return "main.jsp";
}
}
[테스트 계정으로 로그인]
Command 객체를 별도의 설정없이 바로 VIEW에서 EL식으로 사용할 수 있다
※ 단, 클래스타입을 소문자로 시작해야한다
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:if test="${empty member}">
<form action="login.do" method="post">
아이디 <input type="text" name="mid" value="${mem.mid}" required> <br>
비밀번호 <input type="password" name="mpw" value="${mem.mpw}" required> <br>
<input type="submit" value="로그인">
</form>
</c:if>
<c:if test="${not empty member}">
<a href="logout.do">로그아웃</a>
<br>
<a href="insertBoard.do">글 작성</a>
</c:if>
MainController.java에서 @ModelAttribute("mem")으로 지정하여 View에서 바로 사용 가능하게 되었다
@ModelAttribute로 멤버변수에 없는 데이터도 특정하여 보낼 수 있다
이전의 코드에서는 VIEW가 VO를 알고 코딩을 한 상황이지만 해당 방식을 사용하면 VIEW가 VO를 알지못하더라도 개발할 수있다
[검색]
이전
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="kim" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>메인페이지</title>
</head>
<body>
<kim:header />
<hr>
<form action="main.do">
<select name="searchCondition">
<c:forEach var="v" items="${searchMap}">
<option value="${v.value}">${v.key}</option>
</c:forEach>
</select>
<input type="text" name="searchContent" placeholder="검색어를 입력하세요.">
<input type="submit" value="검색">
</form>
<br>
<c:if test="${fn:length(datas) <= 0}">
<h1>출력할 게시글이 존재하지않습니다!</h1>
</c:if>
<c:if test="${fn:length(datas) > 0}">
<table border="1">
<tr>
<th>글 번호</th><th>글 제목</th><th>작성자</th><th>조회수</th>
</tr>
<c:forEach var="v" items="${datas}">
<tr>
<td><a href="board.do?bid=${v.bid}&searchCondition=CNT">${v.bid}</a></td><td>${v.title}</td><td>${v.writer}</td><td>${v.cnt}</td>
</tr>
</c:forEach>
</table>
</c:if>
</body>
</html>
728x90
반응형
'자바 > Spring' 카테고리의 다른 글
[Spring] day66 : AOP(관점 지향 프로그래밍) (1) | 2023.08.14 |
---|---|
[Spring] day64 : 2-Layerd 아키텍처 스타일 (1) | 2023.08.14 |
[Spring] day61 : Command 객체 (0) | 2023.08.13 |
[Spring] day61 : Spring MVC로 변경하기 (2) | 2023.08.12 |
[Spring] day60 : Service와 ServiceImplement(+@Repository) (0) | 2023.08.12 |
Comments