<form method="post" action="/director_search.do">
<input type="text" id="name" name="name" />
</form>
이런식으로 알려주면서 동적쿼리를 한번 사용해보자
동기방식으로 먼저 실행해보자 ----------------------------------------------------
인터페이스에 다음을 구현해준다.
List<Director> selectDirectorListByNameOrAge(String name, int age);
서비스와 DAO에 같은 메서드를 추가시킨후에
DAOImpl을 작성하기 시작한다.
public List<Director> selectDirectorListByNameOrAge(String name, int age) {
HashMap<String, Object> map = new HashMap<String, Object>;
if(name != null) {
map.put("name",name);
}
if(age > 0) {
map.put("age",age);
}
return sqlSessionTemplate.selectList("Director.selectDirectorListByNameOrAge",map);
}
그리고 Director.xml에
<select id="selectDirectorListByNameOrAge" parameterType="map" resultMap="DirectorResultMap">
select director_id,
director_name,
director_age,
director_winnercount
from director <!--여기다가 where절을 포함할수있따-->
<where>
<if test="name != null">
director_name = #{name}
</if>
<if test="age != null">
or director_age = #{age} <!-- or를 붙여주면 붙였다 뗐다 해줌. -->
</if>
</where>
</select>
이제 컨트롤러에
@RequestMapping("/")
public String searchDirector(String name, int age, Model model) {
model.addAttribute("directorList", directorService.findDirectorListByNameOrAge(name,age));
return "director_list";
}
만 보내주면 된다
혹시 숫자가 와서 버그가 난다면
int age대신
@RequestParam(value="age",defaultValue="0")int age
이렇게 넣어주면 변환에 실패할일은 없다
빈스트링값 조심하기
'웹 & 프레임워크' 카테고리의 다른 글
<비공개> 장바구니 서블릿 소스 - 참고용 (필요없을듯) (0) | 2014.05.14 |
---|---|
마이바티스 에러 (0) | 2014.05.13 |
<비공개> 조인해오기 xml설정 (0) | 2014.05.13 |
<비공개> DTD (0) | 2014.05.13 |
컨트롤러를 이용한 index.jsp 화면 설계 (0) | 2014.05.12 |