160530: 53회차
종료하기 전 티스토리 네이버 로그아웃 할 것
1. 툴
동일
추가시:
2. 폴더
동일
추가시:
3. 사용할 사이트
동일
추가시:
4. 공부하는 것
오늘도 spring :>
ajax 책 좀 열심히 독파할 것!
설명을 일단 적어 봅시다... -.-)
redirect
request
BoardController에서
update의 경우에
public String update(BoardDTO dto, String oldfile, HttpServletRequest request){
String basePath = request.getRealPath("/storage");
String filename = Utility.saveFile(dto.getFilenameMF(), basePath);
int filesize = (int)dto.getFilenameMF().getSize();
dto.setFilename(filename);
dto.setFilesize(filesize);
boolean flag = mgr.passwdCheck(dto.getNum(), dto.getPasswd());
if(flag){
if(mgr.update(dto))Utility.deleteFile(basePath, oldfile);
return "redirect:/list";
}else{
return "passwdError";
}
redirect부터는 새로운 request가 만들어짐 :>!
model.addAttribute("nowPage", request.getParameter("nowPage"));
if(mgr.update(dto))Utility.deleteFile(basePath, oldfile);
return "redirect:/list";//redirect부터는 새로운 request가 만들어짐
요걸 if문 안에 추가해서 가지고감
if(flag){
model.addAttribute("nowPage", request.getParameter("nowPage"));
model.addAttribute("col", request.getParameter("col"));
model.addAttribute("word",request.getParameter("word"));
if(mgr.update(dto))Utility.deleteFile(basePath, oldfile);
return "redirect:/list";//redirect부터는 새로운 request가 만들어짐
이런 식으로 다 가지고 감!
스프링은 알아서 forword나 sendredirect나 유지를 시켜줌
오늘 할 것:
mvc_team 배운 뒤
mvc_address 알아서 해보기
---1교시---
pom.xml - 레이븐이 라이브러리 관리해주는 내용 관련 파일
spring_board 에서 오라클 관련 dependency하고 repositories 가져옴
webapp\WEB-INF\spring\appServlet\servlet-context.xml
에서
어노테이션 객체 생성 관련 코드를 적어줘야함
기본적으로
<context:component-scan base-package="spring.sts.team" />
는 있으니까
<context:component-scan base-package="spring.model.team" />
를 추가해준당.
그리고 dao에다가 annotation을 추가해주면 된다.
TeamDAO의
public class TeamDAO{ 부분 위에다가
@Component 추가해주면
어노테이션이 인식됨 :>
views에다가 view내용들 - CRUD관련 jsp 가져다가 놓음
넘나 좋은 POJO 포존데 왜 푸조야
포조!
푸주까지 인정
하지만 다들 POJO...
그럼 PUMA는 왜 퓨마야
유니까 그렇구나
아 그리고 나서 spring.sts.team에다가
TeamController 만들어 준담에
package spring.sts.team;
import org.springframework.stereotype.Controller;
@Controller
public class TeamController {
}
이렇게 어노테이션을 추가하면 됨
<<사용한 어노테이션>>
@Component
@Controller
@Autowired
@RequestMapping
@RequestMapping("/list")
public String list(HttpServletRequest request){
String col=Utility.nullCheck(request.getParameter("col"));
String word=Utility.nullCheck(request.getParameter("word"));
if(col.equals("total"))word="";
int nowPage=1;
int recordPerPage=5;
if(request.getParameter("nowPage")!=null){
nowPage=Integer.parseInt(request.getParameter("nowPage"));
}
int sno=(((nowPage)-1)*recordPerPage)+1;
int eno=nowPage*recordPerPage;
Map map=new HashMap();
map.put("sno", sno);
map.put("eno", eno);
map.put("col", col);
map.put("word", word);
TeamDAO dao=new TeamDAO();
List<TeamDTO>list=dao.list(map);
int total=dao.total(col, word);
String paging=new Paging().paging3(total, nowPage, recordPerPage, col, word);
request.setAttribute("list", list);
request.setAttribute("paging", paging);
request.setAttribute("col", col);
request.setAttribute("word", word);
request.setAttribute("nowPage", nowPage);
return "list";
}
이런 식으로
mvc의 ListAction을 가져다 씀
TeamDAO dao=new TeamDAO();
이걸 생성하면 위에 선언한 dao를 안 쓰게 되니까 지워줌
@Autowired
private TeamDAO dao;
그러면 이걸 씀 :>
그담에 파라미터에 model 추가해놓고
request.setAttribute("list", list);
request.setAttribute("paging", paging);
request.setAttribute("col", col);
request.setAttribute("word", word);
request.setAttribute("nowPage", nowPage);
요거를
model.addAttribute("list", list);
model.addAttribute("paging", paging);
model.addAttribute("col", col);
model.addAttribute("word", word);
model.addAttribute("nowPage", nowPage);
요걸로 바꿔줌
DAO랑 리스트랑 파랑색인지 확인 해보면 바뀐 거 알 수 있음.
list.jsp에서
../css 를 ./css로 바꿔주고
.do를 없애준다.
webapp에다가
css , images 파일을 복사해서 넣어주고
servlet-context의 경로를
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the
${webappRoot}/resources directory -->
<resources mapping="/**" location="/" />
로 바꿔줌 (resourcess빼준거임)
이 상태에서 실행하면 한글이 깨짐
이거 수정법: 다른 jsp에서 한글처리를 복사해다가 넣음
---2교시---
@RequestMapping(value="/create", method=RequestMethod.GET)
public String create(){
return "createForm";
}
이거랑
.POST 만들었음
어 그런데 CreateProcAction에서 보니까 Upload 사용함... -.-
spring_team\src\main\webapp\storage
라는 폴더 만듬
D:\javadb\spring\workspace\spring_team\src\main\webapp\WEB-INF\spring\root-context.xml
에다가 board의 root-context.xml 가져다가 붙여넣음
pom.xml에
<!-- fileupload setting -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
도 붙여넣음 - 업로드 관련
그리고 나서 createForm에 가서
file의 이름을 fileMF로 바꿔줌
그리고 나서 이러저러하게 saveFile도 복붙해주고
이러저러한 일을 해줌 -.-)
코드는 일단 이렇게 생김
@RequestMapping(value="/create", method=RequestMethod.POST)
public String create(TeamDTO dto, HttpServletRequest request){
String basePath = request.getRealPath("/storage");
String fname = "member.jpg";
// String fname = Utility.saveFile(dto.getFnameMF(), basePath);
dto.setFname(fname);
return "createForm";
}
fname 테스트해본다고 저렇게 만듬
근데 기존에 saveFile 메소드가 오류가 있다고 어... create(포스트로 받는 애) 를 수정하기로 함
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
</dependency>
얘도 pom.xml에 넣어주고
@RequestMapping(value="/create", method=RequestMethod.POST)
public String create(TeamDTO dto, HttpServletRequest request){
String basePath = request.getRealPath("/storage");
String fname = "member.jpg";
int filesize = (int)dto.getFnameMF().getSize();
if(filesize>0){
fname = Utility.saveFile(dto.getFnameMF(), basePath);
}
dto.setFname(fname);
if(dao.create(dto)){
return "redirect:/list";
}else{
return "error";
}
}
이것이 최종코드인것
그리고나서 createForm.jsp에서도 맨날하는거를 해준다
---3교시--
4교시! :>
리드 할거임
read의 리드
리드하고싶진 않다
뤼드
그냥 이렇게 생김
@RequestMapping(value = "/read")
public String read(int no, Model model){
model.addAttribute("dto", dao.read(no));
return "read";
}
포스트/겟방식 필요 없는 것
read.jsp에 가서 경로도 바꿔줌
-끝-
update는 create 가져다가 바꾸면 됨
@RequestMapping(value="/update", method=RequestMethod.POST)
public String update(TeamDTO dto, String oldfile, HttpServletRequest request, Model model){
String basePath = request.getRealPath("/storage");
String fname = "member.jpg";
int filesize = (int)dto.getFnameMF().getSize();
if(filesize>0){
if(oldfile!=null && !oldfile.equals("member.jpg"))
Utility.deleteFile(basePath, oldfile);
fname = Utility.saveFile(dto.getFnameMF(), basePath);
}
dto.setFname(fname);
if(dao.update(dto)){
model.addAttribute("nowPage", request.getParameter("nowPage"));
model.addAttribute("col", request.getParameter("col"));
model.addAttribute("word", request.getParameter("word"));
return "redirect:/list";
}else{
return "error";
}
}
@RequestMapping(value="/update", method=RequestMethod.GET)
public String update(int no, Model model){
model.addAttribute("dto", dao.read(no));
return "updateForm";
}
리턴값 잘 확인할 것
--4교시--
5. 수업
진도:
hw:
6. 할것
'Programming' 카테고리의 다른 글
160601: 55회차 (0) | 2016.06.01 |
---|---|
160531: 54회차 (0) | 2016.05.31 |
160527: 52회차 (0) | 2016.05.27 |
160526: 51회차 (0) | 2016.05.26 |
160525: 50회차 (0) | 2016.05.25 |