mvc 헷갈리므로 기초적으로 흘러가는 것 정리
sts 다운해서 spring legacy project -> spring mvc project
HomeController.java, servlet-context.xml, root-context.xml, web.xml, pom.xml 가 있음
pom과 root-context는 다른곳에서 복사해서 붙여넣자
web.xml 내에서 <web-app> 내부에 있는 <context-param> 은 전체 어플리케이션에 적용이되는 파라미터 값 저장이고,
<servlet> 내의 <init-param>은 <servlet>내의 서블릿에만 적용이 되는 파라미터 값 저장이다.
DispatcherServlet을 appServlet으로 선언을 하면서 파라미터로 contextConfigLocation 안에 servlet-context.xml를 선언
contextConfigLocation 은 다른의미를 가지고 있는 것 같다. 따로 찾아봐서 글로 적어놔야겠다.
이것은 한글을 위해서 밑에 붙여준다.
servlet-context.xml 은
다음과 같이 bean 내용들을 담고있다. ViewResolver는 return 값 뒤에 저렇게 .jsp 를 붙여서 view로 연결시킨다.
bean 내용에 관해서 말인데,
service 내용 같은것을 쓸 때에 그 클래스 위에
@Component, @Repository 또는 @Service(서비스일때) 를 사용하면 bean을 context.xml에 쓰지않아도
컨트롤러에서 @Autowired를 이용해 가져다 쓸 수 있다.
@Repository("memService")
@Resource(name="memService") 를 통해 이름을 정해줄 수도 있다.
ㅡㅡㅡ
get인 경우에는 생략할 수 있다.
만약 컨트롤러에 html 방식이 post인데 생략되어있다고 하면, 못찾다가 value 값과 같은 것을 찾아서 수행하게 된다.
GET일 때에도 꼭 써주도록 습관들여야된다.
만약 저 html 에 /lect17/member/memJoin 다른 html 파일도 /lect17/member/example 이렇게 /member 중복이 있다면
컨트롤로의 @Controller 어노테이션 밑에 @RequestMapping("/member") 를 통해 한 꺼번에 처리해줄 수가 있다.
html에서 받은 것을 HttpServletRequest request 를 이용해 request.getParameter(id value)
말고도 위와 같이
@RequestParam("id")자료형 자료형 이름 으로 받아올 수 있고
required 나 defaultValue를 추가할 경우에는 value="id" 를 사용한다.
required는 반드시 필요하냐 여부를 물어보고 없을 시에 defaultValue의 값이 들어가게 된다.
그리고 마지막 방법으로는
다음과 같이 html 의 id 와 member.java (예시 이름임) 의 id 값을 맞춰주고 컨트롤러에서 get을 통해받아서 jsp에 member.memId 처럼 쏴주어서 사용하는 방법이 있다. 이게 대세의 방법이라고 한다.
'공부 기록들' 카테고리의 다른 글
2020.04.06 Spring(6) (0) | 2020.04.06 |
---|---|
2020.04.05 Spring(5) (0) | 2020.04.06 |
2020.04.01 SQL (0) | 2020.04.02 |
2020.03.27 Spring(3) (0) | 2020.03.30 |
2020.03.26 SQL sql loader 와 merge (0) | 2020.03.26 |