티스토리 뷰

직전 포스팅에서 다뤘던 내용으로 충분히 어떤 웹 프로젝트를 구성하는데 아무런 문제가 없지만, 만약에 VO 객체 내에 없는 값을 jsp에서 요청하여 전달하려고 하면, VO 객체에 해당 값을 추가하는 불편함이 있다. 

 

이 경우, @RequestParam을 사용하여 VO 객체를 수정하지 않고도 요청 값을 자동으로 전달받을 수 있다.


예를 들어, jsp 페이지 내에서 다음과 같이 VO 객체에 선언되어 있지 않는 값을 사용했을 경우,

<tr>
  <td align="right">
    <select name="searchCondition">
      <option value="TITLE">제목</option>
      <option value="CONTENT">내용</option>
    </select>
    <input type="text" name="searchKeyword" />
    <input type="submit" value="검색">
  </td>
</tr>

 

◎BoardController.java

package com.freeflux.view.board;

import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.freeflux.biz.board.BoardVO;
import com.freeflux.biz.board.impl.BoardDAO;

@RequestMapping(value= "/getBoardList.do")
public String getBoardList(@RequestParam(value="searchCondition", defaultValue="TITLE") String condition,
                           @RequestParam(value="searchKeyword", defaultValue="") String keyword,	
	BoardVO vo, BoardDAO dao, Model model) {
	System.out.println("목록 처리");

	List<BoardVO> boardList= dao.getBoardList(vo);
	
	model.addAttribute("boardList", boardList);

	return "getBoardList.jsp";
}

위와 같이 @RequestParam 으로 자동 맵핑하여 전달받을 수 있게된다. 

 

구조는 다음과 같다.

@RequestParam(value="param_name", defaultValue="아무런 값이 안 들어왔을 때 값") String 사용할 변수명

//속성:
// value: 화면으로부터 전달될 파라미터 이름
// defaultValue: 화면으로부터 전달될 파라미터 정보가 없을 때, 설정할 기본값
// required: 파라미터의 생략 여부

 

Comments