implementation 'javax.servlet:jstl'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
#about JSP
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
@ResponseBody
가 있으면 리턴되는 문자열이 웹 브라우져에 직접 쓰여진다. @RequestMapping("/test1") // localhost:8070/test1
public @ResponseBody String test1() {
return "<h1>JSP in Gradle~TEST - @ResponseBody !!</h1>";
}
@RequestMapping("/test1")
public String test1(Model model, HttpServletRequest request) {
// Model : 리턴되는 jsp 파일까지만 해당 내용을 전달 할 수 있는
// 1회용 자료 전달 도구
model.addAttribute("name1", "홍길동");
// request : 수명이 다하는 순간까지는 내용을 살려서
// 다시 전달 할 수 있는 전달 도구
request.setAttribute("name2" , "김하나");
return "test1";
}
새로운 객체가 매개변수로 지정되어 전달되어지는 RequestMapping 메서드에서는 이전 메서드에서 저장해놨던 model 과 request가 적용지 않는다.
test2 메서드에서 보내려고 했던 model 과 request 는 전달인수로 보낸게 아니기때문에 test3 메서드의 매개변수에 저장되지 않는다.
request 와 model 의 내용을 꺼내쓰는 건 return 되는 jsp 파일내부만 가능!!
@RequestMapping("/test3")
public String test3( @ModelAttribute("mem") MemberDto memberdto,
Model model) {
return "test3";
}
파라미터와 일치하는 멤버변수가 있는 객체(MemberDto)를 만들고 이 객체를 매개변수로 사용할 수 있다
전달된 파라미터는 매개변수에 자동으로 입력된다.
ModelAttribute 어노테이션을 통해 자동으로 Model 에도 저장되게 할수 있다
위 매개변수에 사용한 어노테이션은
@ModelAttribute("mem") MemberDto memberdto
== Model.addAttribute("mem", member)
라고 쓴 것과 같다
Lombok(롬복)은 Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리이다.
Lombok을 이용하면 Getter, Setter, Equlas, ToString 등과 다양한 방면의 코드를 자동완성 시킬 수 있다.
Dto 객체에 @Data
만 넣으면 사용가능
@Data
외에도 여러 이노테이션을 제공한다.
import lombok.Data;
@Data
public class MemberDto {
private String id;
private String name;
}
@NotNull
, @NotEmpty
를 사용해서 Dto의 전달인수에 조건을 달 수 있다. js를 사용하지 않고 parameter를 체크할 수 있다. ( )안에 조건이나 메시지를 설정하여 .getDefaultMessage()를 설정해 놓을 수도 있다.@Data
public class ContentDto {
@NotNull(message="Writer is Null")
@NotEmpty(message="Writer is Empty")
@Size(min=4, max=20, message="Writer min 4, max 20")
private String writer;
@NotEmpty(message="Content is Empty")
@NotNull(message="Content is Null")
private String content;
private String name;
}
프로젝트 생성 시 JDBC API와 사용할 데이터베이스의 Driver를 선택하고 프로젝트 시작
application.properties에 jdbc 설정 추가
# Oracle
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=scott
spring.datasource.password=tiger
@Autowired
private JdbcTemplate template;
public List<UserDto> getList() {
String sql = "select * from myuser";
List<UserDto> list = template.query(
sql, new BeanPropertyRowMapper<UserDto>(UserDto.class)
);
return list;
}
new BeanPropertyRowMapper<UserDto>(UserDto.class)