일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 토픽추출
- Topics
- java
- 네이버뉴스
- jsp 파일 설정
- RESFUL
- tomoto
- test
- 코사인 유사도
- 幼稚园杀手(유치원킬러)
- Gmarket
- 크롤링
- 방식으로 텍스트
- (깃)git bash
- mysql
- Python
- 과학백과사전
- oracle
- pytorch
- 자바
- 게시판 만들기
- 이력서
- lda
- spring MVC(모델2)방식
- r
- 파이썬
- db
- word2vec
- 지마켓
- Websocket
- Today
- Total
무회blog
Spring,커맨드 객체 ( 폼/view에서 => 컨트롤에 값을 전달 ) 본문
spring mvc
핸들러 매핑
컨트롤러 메소드
파라미터에 컨트롤러 메소드 파라미터 타입
예; Model (
커맨드 객체 ( 폼/view에서 => 컨트롤에 값을 전달 )
ModelAttribute => (컨트롤러에서 뷰로전달)
jsp form 에서 입력 값 => jsp 값
ModelAndView => 값 전달+ model(비지니스처리)+view
Model => 값전달+ model+view
BindingResult validation 을 받을때
public String hello(
@RequestParam (value = "name", requered =false) String name,
@RequestParam (value = "name", requered =default) int age,
view에서 => 컨트롤에 값을 전달 )
@RequestMapping("/board_detail.do")
public String board_detail(@RequestParam("seq") int seq, Model model){
model.addAttribute("board", dao.getBoard(seq));
return "detail";
}
RESTful 방식
uri 설정으로 필요한 서비스를 받는것
@PathVariable 어노테이션을 이용해서 URI 템플릿 가능
/*@RequestMapping("/board_detail.do")*/
@RequestMapping("/board_detail{seq}")
/*public String board_detail(@RequestParam("seq") int seq, Model model){*/
public String board_detail(@PathVariable int seq, Model model){
model.addAttribute("board", dao.getBoard(seq));
return "detail";
}
tiles (타일즈)
Template 기술 (하나의 탬플릿 안에서 들어가서 돌아가는 방식)
템플릿 레이아웃 자체를 할때 구조를 잡는 용도
예전에 많이 사용
리엑트, vue 등 클라이언트에서 화면에 뿌려주는 관련 내용
클라이언트에서 url 를 mvc 방식으로 화면에 보여줌
컨퍼넌트 방식 (다른 로직에 영향 안미치고 지속적인 업그레이드 가능)
사용한걸 반복적이다 보니 반복을 줄이는 방식
타일즈 라이브러리 -> 메이븐
tiles-jsp
tiles-core library
tiles-api
컨트롤러의 메소드 /*리턴값은 tiles-definitions 리턴값임 */
// @RequestMapping(value="/board_list.do", method=RequestMethod.GET)
/*@RequestMapping("/board_list.do")*/
@RequestMapping("/board_list")
public String board_list(Model model){
//비즈니스 처리
List<Board> list = dao.listBoard();
//데이터 가져오기
model.addAttribute("list", list);
return "list";
/*리턴값은 tiles-definitions 리턴값임 */
//뷰 이름 정하기
}
springapp2-servlet.xml 에서
<!-- Tiles Setting -->
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles2def.xml</value>
</list>
</property>
</bean>
파일업로드 관련
프로젝트명: Sugjie02,
Board.xml 파일에서 Fname 추가
Board.java 에서
필드 fname 추가 , get/set 추가
MultipartFile uploadFile; et/set 추가
springapp2-servlet.xml 에서
<!-- File Up/Down Setting -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
BoardController 에서 /board_insert
/*@RequestMapping(value="/board_insert.do", method=RequestMethod.GET)*/
@RequestMapping(value="/board_insert", method=RequestMethod.GET)
public String insertform(@ModelAttribute("boardCommand") Board board, Model model){
//데이터타입이 string이라면 , Model에서 받는다. 즉, 데이터 받는방법 데이터타입2가지 : modelandview, string-model
model.addAttribute("title", "글쓰기2");
return "insert_form";/*리턴값은 tiles-definitions 리턴값임 */
}
/*@RequestMapping(value="/board_insert.do", method=RequestMethod.POST)*/
@RequestMapping(value="/board_insert", method=RequestMethod.POST)
public String board_insert(@ModelAttribute("boardCommand") @Valid Board board, BindingResult errors){
if(errors.hasErrors()) //바인딩 객체에 에러가 있냐
{
System.out.println("에러 발생");
return "insert_form";
/*리턴값은 tiles-definitions 리턴값임 */
}
MultipartFile multipartFile = board.getUploadFile();
if(multipartFile != null){
String fname = multipartFile.getOriginalFilename();
board.setFname(fname);
try {
multipartFile.transferTo(new File(uploadDir, fname));
} catch (Exception e) {
e.printStackTrace();
}
}
insert_form.jsp 에서
<form:form action="board_insert" method="post"
commandName="boardCommand"
enctype="multipart/form-data">
작성자 : <form:input type="text" path="writer" />
<form:errors path="writer" cssClass="error"></form:errors>
제목 : <form:input type="text" path="title" />
<form:errors path="title" cssClass="error"></form:errors>
파일: <input type="file" name="uploadFile"/>
내용
<form:textarea rows="6" cols="70" path="contents" />
<input type="submit" value="등록">
</form:form>
File DownLoad
class 방식의 DownloadView.java
springapp2-servlet.xml view타입 설정