맨 윗 부분 선언부
메시지 컨트롤러로 보낼때 사용할 변수 String flag를 선언해줌
@Autowired 로 surveyService 객체 연결해줌
@RequestMapping("/survey")맵핑 변수를 선언해서
/survey 로 들어오는 것은 여기로 들어옴
ex) /sList 같은 경우
/survey/sList로 경로가 설정됨
return "survey/sList"; -> jsp 파일을 나타냄 suvey아래 sList.jsp 파일로 return 해줌
작동순서
1. nav 에서 설문지 [sList.jsp] 클릭
2. sList.jsp
<p style="text-align:right"><button type="button" class="btn btn-secondary" value="돌아가기" onclick="location.href='${contextPath}/survey/sInput'">설문지 등록</button></p>
설문지 등록 버튼을 누르면 ${contextPath}/survey/sInput' 경로로 이동
이동과 동시에 SuSurveyController.java 로 이동
suInputGet 메소드에 들어감
survey/sInput 으로 이동 하라고 지정해줌 [survey/sInput -> sInput.jsp]
3. sInput.jsp
설문지를 등록해주는 부분 으로 sql 은 [SurveyVo.sql ]
분야 , 설문제목 , 작성자, 시작일 , 종료일
설문기간에서 현재날짜 ~ 설문 종료날짜 로 설정했는대 현재날짜가 들어있는 곳
${now} 를 sysYear로 사용하겠다.
<button type="button" class="btn btn-secondary" value="등록하기" onclick="fCheck()">등록하기</button>
등록하기 버튼을 누르면 onclick="fCheck() 함수 호출
fCheck() 함수는 위에 스크립트 부분에 선언되어 있음
위에 var subject.myform.subject.value;
<script>
function fCheck() {
var subject =myform.subject.value; //폼에 있는 subject 를 변수 subject 로 선언
var part=myform.part.value; //폼에 있는 part 를 변수 part 로 선언
var edate = myform.edate.value; //폼에 있는 edate 를 변수 edate 로 선언
//공백체크 부분
if(subject == ""){ //설문제목이 공백이면
alert("설문지이름을 입력하세요"); // 메시지 [설문지이름을 입력하시오] 띄움
}
else if(part == ""){ // 분야가 공백이면
alert("파트를 선택하세요"); // 메시지 [파트를 선택하세요] 띄움
}
else { //모두 공백이 아니라면 (입력되었다면)
myform.submit(); // 전송
}
}
</script>
<form name="myform" method="post">
전송이 되면 form 태그로 이동해서 post 방식으로 컨트롤러로 넘어간다.
surveyService.surveyInput(vo); -> surveyService객체 호출
SurveyService
SurveyServiceImp
SurveyDao
surveyMapper
맵퍼로 가서 insert 명령을 사용해서 database에 값을 넣어 준다.
제목란을 테이블로 직접 입력해준 부분
각 제목란에 맞는 (model 객체에 담긴)항목들을 jstl로 가지고 와서 화면에 뿌려주는 모습
idx Database -> mapper에서 내림차순으로 설정 해놨기때문에 22 , 21 순으로 뿌려짐
jstl 사용시 위에 적어주어야함
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> prefix="c" c로 불러서 사용하겠다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> prefix="fn" fn 으로 불러서 사용하겠다.
<c:forEach var="vo" items="${vos}"> //vos들어있는 vo를 반복
<td>${vo.idx}</td> // 번호 21
<td><a href="${contextPath}/survey/sAnalysis?idx=${vo.idx}">${vo.subject}</td>
// 설문지명 [누르면 ${contextPath}/survey/sAnalysis 로 이동 idx를 가지고 ]
<td>${vo.part}</td>
<td>${fn:substring(vo.sdate,0,10)}~${fn:substring(vo.edate,0,10)}</td>
// 설문기간 시작 날짜 끝 날짜
<td>0</td> //
<td></td>
<td><a href="${contextPath}/survey/sJoin?idx=${vo.idx}">설문참여</a></td>
</tr>
</c:forEach>
substring 메소드 사용하려면 위에 jstl/funtion 선언해주어야함
설문기간 자동으로 2020-07-10 까지만 자르기 위해 [Programming/JAVA] - substring
설명
forEach를 사용해서 vos에 들어있는 vo를 반복시키겠다.
위에 jstl core라이브러리가 선언되어있어야한다. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
prefix="c" c라는 이름으로 불러서 사용하겠다. ex) <c:forEach>
'Programing > Spring , Springboot , JPA' 카테고리의 다른 글
Ajex 처리 정리 (0) | 2020.08.10 |
---|---|
spring 파일 배포하기 [STS 이용] (0) | 2020.07.13 |
substring (0) | 2020.07.10 |
SurveyController (0) | 2020.07.10 |
suvey (0) | 2020.07.10 |