Open iknowahra opened 2 years ago
<c:forEach var="item" items="${list }"> <tr> <td>${list.title }</td> <td>${list.content }</td> </tr> </c:forEach>
<c:forEach var="item" items="${list }"> 에서 list의 각 element를 item으로 부르기로 했으므로, ${list.title}이 아니라 ${item.title}로 기재했어야 했다.
<c:forEach var="item" items="${list }">
${list.title}
${item.title}
src/main/java > com.ahra.www > service를 했어야 했는데, ``src/main/java > service를 해서 spring이 service folder를 가져올 수 없었다. 항상 파일 path에 신경을 써야겠다.
src/main/java > com.ahra.www > service
``src/main/java > service
Interface를 쓰는 가장 큰 이유는 개발자의 실수를 방지하기 위함이다. 또한 여러 사람이 모여서 개발할 때, 메서드 들의 이름이나 구조를 통일하는데 유리하다.
package com.ahra.www.service; import java.util.List; import com.ahra.www.vo.FormTestVo; public interface FormTestService { public List<FormTestVo> selectFormTest(int no); }
package com.ahra.www.service; @Service("FormTestService") public class FormTestServiceImpl implements FormTestService { @Autowired FormTestDao dao; @Override public List<FormTestVo> selectFormTest(int no) { return dao.selectFormTest(no); } }
package com.ahra.www.dao; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import com.ahra.www.vo.FormTestVo; @Repository("FormTestDao") public class FormTestDao { @Autowired // 이 객체를 bean에 넣어줌 원래라면 새롭게 만들어야 함. 의존성 주입 SqlSession sqlSession; public List<FormTestVo> selectFormTest (int no) { return sqlSession.selectList("formTest.selectFormTest", no);0 } }
sqlSession.selectList 은 조건에 일치하는 값을 List에 담아서 return 해준다.
sqlSession.selectList
//FormController.java @RequestMapping(value = "viewer", method = RequestMethod.GET) public String viewer(Model model) { List<FormTestVo> list = null; try { list = service.selectFormTest(1); //DAO의 `sqlSession.selectList` 덕분에 // new ArrayList<>(sqlSession.selectList) 안하고 바로 담아도 ok System.out.println(list.toString()); } catch (Exception e) { e.printStackTrace(); System.out.println("cannot receive the data"); } model.addAttribute("list", list); return "form/viewer2"; }
intercepter : spring main dispatcher(controller 제어)에 접근하기 전 request와 response를 먼저 가로 채서 작업을 해줌 (주로 로그인에 사용함.) lightsail aws 쌈
내일은 데이터 주고 받기!
2021.10.14
내가 실수했던 것 1
<c:forEach var="item" items="${list }">
에서 list의 각 element를 item으로 부르기로 했으므로,${list.title}
이 아니라${item.title}
로 기재했어야 했다.내가 실수했던 것 2
src/main/java > com.ahra.www > service
를 했어야 했는데,``src/main/java > service
를 해서 spring이 service folder를 가져올 수 없었다. 항상 파일 path에 신경을 써야겠다.Interface vs Class
Interface를 쓰는 가장 큰 이유는 개발자의 실수를 방지하기 위함이다. 또한 여러 사람이 모여서 개발할 때, 메서드 들의 이름이나 구조를 통일하는데 유리하다.
service
DAO
sqlSession.selectList
은 조건에 일치하는 값을 List에 담아서 return 해준다.intercepter : spring main dispatcher(controller 제어)에 접근하기 전 request와 response를 먼저 가로 채서 작업을 해줌 (주로 로그인에 사용함.)
lightsail aws 쌈
내일은 데이터 주고 받기!