SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
1Page l 1
전자정부 표준프레임워크
실행환경(화면처리) 실습교재
2Page l 2
실습 목차
LAB 301-mvc 실습(1)
LAB 301-mvc 실습(2)
LAB 301-mvc 실습(3)
LAB 302-ajax 실습(1)
LAB 302-ajax 실습(2)
3Page l 3
실습 개요
q 실습을 통해 MVC에 대하여 살펴본다.
q 실습 순서
- Hello world예제
1. Controller 일부 작성
2. JSP 일부 작성
- 로그인 예제
1. XML 설정
2. LoginController 작성
3. LoginCommand 작성
- 사용자 등록화면 예제
1. XML 설정
2. LoginController에 @SessionAttribute, 메소드 추가
4Page l 4
LAB 301-mvc
LAB 301-mvc 실습 (1)
5Page l 5
LAB 301-mvc
Exercise 1-1-1. “/hello.do” 에 동작하는 Controller 메소드 만들기
Exercise 1-1-2. helloworld.jsp 만들기 (위치 : srcmainwebappWEB-INFjsphello )
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hello eGovFrame</title>
</head>
<body>
<h1>Hello 표준 프레임워크 </h1>
</body>
</html>
@RequestMapping(value = "/hello.do")
public String helloworld() {
return getViewName();
}
6Page l 6
LAB 301-mvc
Exercise 1-1-3. ‘Hello World’ 예제 실행결과 확인
- 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행
- 예제 실행 결과 확인 (http://127.0.0.1:8080/lab301-mvc/)
7Page l 7
LAB 301-mvc
LAB 301-mvc 실습 (2)
8Page l 8
LAB 301-mvc
Exercise 1-2-1. context-servlet.xml 설정 변경하기 : messageSource 활성화
Exercise 1-2-2. LoginController.java 메소드 추가하기
@RequestMapping(value = "/loginProcess1.do", method = RequestMethod.GET)
public String loginFormSetUp() {
return getFormView();
}
@RequestMapping(value = "/loginProcess1.do", method = RequestMethod.POST)
public String loginProcess(@ModelAttribute("login") LoginCommand loginCommand) {
return getSuccessView();
}
@ModelAttribute("loginTypes")
protected List<LoginType> referenceData() throws Exception {
List<LoginType> loginTypes = new ArrayList<LoginType>();
loginTypes.add(new LoginType("A", "개인회원"));
loginTypes.add(new LoginType("B", "기업회원"));
loginTypes.add(new LoginType("C", "관리자"));
return loginTypes;
}
@ModelAttribute("login")
protected Object referenceData4login() throws Exception {
return new LoginCommand();
}
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>messages.message-common</value>
</list>
</property>
</bean>
9Page l 9
LAB 301-mvc
Exercise 1-2-3. LoginCommand.java 완성하기
private String id;
private String password;
private String loginType;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getLoginType() {
return loginType;
}
public void setLoginType(String loginType) {
this.loginType = loginType;
}
10Page l 10
LAB 301-mvc
Exercise 1-2-4. . ‘Hello World’ 예제 실행결과 확인
- 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행
- 예제 실행 결과 확인 (http://127.0.0.1:8080/lab301-mvc/)
11Page l 11
LAB 301-mvc
LAB 301-mvc 실습 (3)
12Page l 12
LAB 301-mvc
Step 1-3-1. context-servlet.xml 추가 설정하기
Step 1-3-2. LoginController.java 에 @SessionAttributes 설정 하기
<!-- [Exercise 1-3-3] mvc-servlet.xml 추가 설정하기 : SessionLocaleResolver를 이용한 locale 설정 -->
<!-- setting Locale -->
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
p:paramName="lang" />
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />
<!-- Locale Interceptor 설정하기 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors">
<list>
<ref bean="localeChangeInterceptor"/>
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
@Controller
@SessionAttributes("login")
public class LoginController {
…
13Page l 13
LAB 301-mvc
Step 1-3-3. LoginController.java 추가 메소드 작성하기
@RequestMapping(value = "/memberInfo.do")
public ModelAndView memberInfo(HttpSession httpSession) {
ModelAndView mav = new ModelAndView("login/memberInfo");
if (httpSession.getAttribute("login") != null) {
mav.addObject("login", httpSession.getAttribute("login"));
}
return mav;
}
@RequestMapping(value = "/loginOut.do", method = RequestMethod.GET)
public String logOut(SessionStatus sessionStatus) {
if (!sessionStatus.isComplete())
sessionStatus.setComplete();
return "redirect:/loginProcess1.do";
}
14Page l 14
Exercise 1-3-4. . ‘사용자 정보보기’ 예제 실행결과 확인
- 예제 실행 결과 확인
Exercise 1-3-5. 국제화 적용 결과 확인
- 로그인 페이지 locale 변경(en)
(http://127.0.0.1:8080/lab301-mvc-tutor/loginProcess1.do?lang=en)
- 예제 실행 결과 확인
LAB 301-mvc
15Page l 15
LAB 302-ajax 실습
LAB 302-ajax
16Page l 16
실습 개요
q 실습을 통해 AJAX에 대하여 살펴본다.
q 실습 순서
- Ajax를 이용한 간단한 구현
1. Ajax controller 작성
2. Ajax view설정
- DB를 연결하여 Ajax의 Autocomplete, AutoSelected기능 구현
1. HSQLDB실행
2. JSP에 AjaxTags 추가
3. Controller 일부 구현
4. ServiceImpl일부 구현
5. DAO 일부 구현
17Page l 17
LAB 302-ajax 실습(1)
LAB 302-ajax
18Page l 18
LAB 302-ajax
Step 2-1-1. AjaxSimpleController.java 에 simpleAjax 메소드 구현하기
Step 2-1-2. AjaxSimpleView.java 완성하기
@SuppressWarnings("unchecked")
@RequestMapping(value = "/autocomplete.do")
public ModelAndView simpleAjax(@RequestParam("keyword") String keyword) {
ModelAndView mav = new ModelAndView(new AjaxSimpleView());
List keywordList = search(keyword);
StringBuffer sb = new StringBuffer();
sb.append(keywordList.size());
sb.append("|");
for (int i = 0; i < keywordList.size(); i++) {
String key = (String) keywordList.get(i);
sb.append(key);
if (i < keywordList.size() - 1) {
sb.append(",");
}
}
LOGGER.debug(sb.toString());
mav.addObject("ajaxSimple", sb.toString());
return mav;
}
writer.write((String) model.get("ajaxSimple"));
19Page l 19
LAB 302-ajax
Exercise 2-1-3. . ‘Ajax-basic’ 예제 실행결과 확인
- 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행
- 예제 실행 결과 확인 (http://127.0.0.1:8080/lab302-ajax/)
20Page l 20
LAB 302-ajax 실습(2)
LAB 302-ajax
21Page l 21
LAB 302-ajax
HsqlDB 를 실행하여라.(lab302-ajaxdbrunHsqlDB.cmd)
Step 2-2-1. employeelist.jsp 에서 Ajax Tags Resource를 붙여준다. Line 16
Step 2-2-2. employeelist.jsp 에서 Ajax Tags Script(AutoComplete용) 를 붙여준다.
Step 2-2-3. employeelist.jsp 에서 Ajax Tags Script(select 용) 를 붙여준다.
<script type="text/javascript" src="<%=request.getContextPath()%>/ajaxtags/js/prototype.js"></script>
<script type="text/javascript"
src="<%=request.getContextPath()%>/ajaxtags/js/scriptaculous/scriptaculous.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/ajaxtags/js/overlibmws/overlibmws.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/ajaxtags/js/ajaxtags.js"></script>
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/ajaxtags/css/ajaxtags.css" />
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/ajaxtags/css/displaytag.css" />
<ajax:autocomplete
baseUrl="suggestName.do"
source="searchName"
target="searchName"
className="autocomplete"
minimumCharacters="1" />
<ajax:select
baseUrl="autoSelectDept.do"
parameters="depth=2,superdeptid={superdeptid}"
source="superdeptid"
target="departmentid"
emptyOptionName="Select model"/>
22Page l 22
LAB 302-ajax
Step 2-2-4. employeeService.getNameListForSuggest 메소드를 호출하여 결과를 가져온다.
Step 2-2-5. 호출하고 보니 EmployeeServiceImpl 의 메소드가 완성되어 있지 않다. 따라서
EmployeeServiceImpl.java 를 완성한다.
EmployeeService Interface 를 구현한다.
Step 2-2-6. getNameListForSuggest 메소드를 구현한다.(comment 처리 를 지운다.)
Step 2-2-7. employeeDao 의 getNameListForSuggest 메소드를 이용하여 검색한후 결과를 리턴한다.
nameList = employeeService.getNameListForSuggest(searchName);
public class EmployeeServiceImpl implements EmployeeService {
public List<String> getNameListForSuggest(String namePrefix) {
}
public List<String> getNameListForSuggest(String namePrefix) {
return employeeDao.getNameListForSuggest(namePrefix);
}
23Page l 23
LAB 302-ajax
Exercise 2-2-8. ‘AutoComplete, AutoSelected’ 예제 실행결과 확인
- 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행
- 예제 실행 결과 확인 (http://127.0.0.1:8080/lab302-ajax/)

Contenu connexe

Tendances

Tendances (20)

04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재04.[참고]개발환경 실습교재
04.[참고]개발환경 실습교재
 
01.실행환경 실습교재(공통기반)
01.실행환경 실습교재(공통기반)01.실행환경 실습교재(공통기반)
01.실행환경 실습교재(공통기반)
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
04.모바일 device api_실습교재
04.모바일 device api_실습교재04.모바일 device api_실습교재
04.모바일 device api_실습교재
 
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
(Spring Data JPA)게시판 리스트보기_오라클, 스프링부트,페이지나누기
 
06.실행환경 실습교재(easy company,해답)
06.실행환경 실습교재(easy company,해답)06.실행환경 실습교재(easy company,해답)
06.실행환경 실습교재(easy company,해답)
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#17.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#27.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#32.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[자바학원/스프링교육학원/마이바티스학원추천/구로IT학원_탑크리에듀]#7.스프링프레임워크 & 마이바티스 (Spring Framework, M...
 
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#22.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
[#9.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)]_재직자환급교육/실업자환급교육/구로IT학원/스프링교...
 
Spring boot actuator
Spring boot   actuatorSpring boot   actuator
Spring boot actuator
 
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
#2.SQL초보에서 Schema Objects까지_재직자/근로자환급/국비지원교육/IT실무교육/SQL기초교육/구로IT학원추천
 
[오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC [오픈소스컨설팅]Spring MVC
[오픈소스컨설팅]Spring MVC
 
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
(스프링 초보자를 위한)스프링 DI관련 어노테이션,자동스캐닝 컴포넌트(Spring Framework Auto-Scanning Component)
 
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 

En vedette

UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...
UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...
UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...
Ali Meghdari
 
Chico Hillel Info-3
Chico Hillel Info-3Chico Hillel Info-3
Chico Hillel Info-3
Jenna Ross
 

En vedette (15)

Locksmith miami
Locksmith  miamiLocksmith  miami
Locksmith miami
 
UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...
UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...
UTF-8_Farhangestan, Cognitive and Social Robotics-NC-ilovepdf-compressed-ilov...
 
Catalogue nouvelles-campagnes-i deal-online-mai-2016
Catalogue nouvelles-campagnes-i deal-online-mai-2016Catalogue nouvelles-campagnes-i deal-online-mai-2016
Catalogue nouvelles-campagnes-i deal-online-mai-2016
 
SCC Capabilities and Credentials
SCC Capabilities and CredentialsSCC Capabilities and Credentials
SCC Capabilities and Credentials
 
Timber Lake Camp: Social media
Timber Lake Camp: Social media Timber Lake Camp: Social media
Timber Lake Camp: Social media
 
10 ошибок, снижающих конверсию на Landing Page
10 ошибок, снижающих конверсию на Landing Page10 ошибок, снижающих конверсию на Landing Page
10 ошибок, снижающих конверсию на Landing Page
 
Бейсенов Адиль
Бейсенов Адиль   Бейсенов Адиль
Бейсенов Адиль
 
Bacheler Diploma Degree
Bacheler Diploma DegreeBacheler Diploma Degree
Bacheler Diploma Degree
 
издательство+ татьяна дорошенко
издательство+ татьяна дорошенкоиздательство+ татьяна дорошенко
издательство+ татьяна дорошенко
 
COMM 125 Portfolio
COMM 125 PortfolioCOMM 125 Portfolio
COMM 125 Portfolio
 
Chico Hillel Info-3
Chico Hillel Info-3Chico Hillel Info-3
Chico Hillel Info-3
 
Gregory Caguimbal Desma 9 Midterm
Gregory Caguimbal Desma 9 MidtermGregory Caguimbal Desma 9 Midterm
Gregory Caguimbal Desma 9 Midterm
 
London openstack
London openstackLondon openstack
London openstack
 
Aplicaciones de las derivadas
Aplicaciones de las derivadasAplicaciones de las derivadas
Aplicaciones de las derivadas
 
ITyX_Handhout_short_EN
ITyX_Handhout_short_ENITyX_Handhout_short_EN
ITyX_Handhout_short_EN
 

Similaire à 04.실행환경 실습교재(화면처리)

제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements
beamofhope
 
Spring test mvc 발표자료
Spring test mvc 발표자료Spring test mvc 발표자료
Spring test mvc 발표자료
수홍 이
 

Similaire à 04.실행환경 실습교재(화면처리) (20)

Okjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 TestOkjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 Test
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements
 
Spring test mvc 발표자료
Spring test mvc 발표자료Spring test mvc 발표자료
Spring test mvc 발표자료
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
 
Spring Boot 2
Spring Boot 2Spring Boot 2
Spring Boot 2
 
[스프링 스터디 2일차] 서비스 추상화
[스프링 스터디 2일차] 서비스 추상화[스프링 스터디 2일차] 서비스 추상화
[스프링 스터디 2일차] 서비스 추상화
 
Presentation1
Presentation1Presentation1
Presentation1
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
02.개발환경 실습교재
02.개발환경 실습교재02.개발환경 실습교재
02.개발환경 실습교재
 
Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기
 
HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.HOONS닷넷 오픈소스 프로젝트 Part1.
HOONS닷넷 오픈소스 프로젝트 Part1.
 
Deep dive into Modern frameworks - HTML5 Forum 2018
Deep dive into Modern frameworks - HTML5 Forum 2018Deep dive into Modern frameworks - HTML5 Forum 2018
Deep dive into Modern frameworks - HTML5 Forum 2018
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3HeadFisrt Servlet&JSP Chapter 3
HeadFisrt Servlet&JSP Chapter 3
 
Cygnus unit test
Cygnus unit testCygnus unit test
Cygnus unit test
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기 GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
GDG DevFest 2017 Seoul 프론트엔드 모던 프레임워크 낱낱히 파헤치기
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
 

Plus de Hankyo (16)

01.표준프레임워크개요
01.표준프레임워크개요01.표준프레임워크개요
01.표준프레임워크개요
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론
 
01.공통컴포넌트 교육교재
01.공통컴포넌트 교육교재01.공통컴포넌트 교육교재
01.공통컴포넌트 교육교재
 
06.실행환경 실습교재(easy company,문제)
06.실행환경 실습교재(easy company,문제)06.실행환경 실습교재(easy company,문제)
06.실행환경 실습교재(easy company,문제)
 
03.모바일 실습교재(모바일 공통컴포넌트 실습)
03.모바일 실습교재(모바일 공통컴포넌트 실습)03.모바일 실습교재(모바일 공통컴포넌트 실습)
03.모바일 실습교재(모바일 공통컴포넌트 실습)
 
03.[참고]개발환경 교육교재
03.[참고]개발환경 교육교재03.[참고]개발환경 교육교재
03.[참고]개발환경 교육교재
 
02.모바일 실습교재(ux component)
02.모바일 실습교재(ux component)02.모바일 실습교재(ux component)
02.모바일 실습교재(ux component)
 
02.[참고]오픈소스sw라이선스가이드라인
02.[참고]오픈소스sw라이선스가이드라인02.[참고]오픈소스sw라이선스가이드라인
02.[참고]오픈소스sw라이선스가이드라인
 
02.공통컴포넌트 실습교재
02.공통컴포넌트 실습교재02.공통컴포넌트 실습교재
02.공통컴포넌트 실습교재
 
Ch05
Ch05Ch05
Ch05
 
Ch04
Ch04Ch04
Ch04
 
Ch03
Ch03Ch03
Ch03
 
Ch02
Ch02Ch02
Ch02
 
Ch11
Ch11Ch11
Ch11
 
Ch10
Ch10Ch10
Ch10
 
Ch09
Ch09Ch09
Ch09
 

04.실행환경 실습교재(화면처리)

  • 1. 1Page l 1 전자정부 표준프레임워크 실행환경(화면처리) 실습교재
  • 2. 2Page l 2 실습 목차 LAB 301-mvc 실습(1) LAB 301-mvc 실습(2) LAB 301-mvc 실습(3) LAB 302-ajax 실습(1) LAB 302-ajax 실습(2)
  • 3. 3Page l 3 실습 개요 q 실습을 통해 MVC에 대하여 살펴본다. q 실습 순서 - Hello world예제 1. Controller 일부 작성 2. JSP 일부 작성 - 로그인 예제 1. XML 설정 2. LoginController 작성 3. LoginCommand 작성 - 사용자 등록화면 예제 1. XML 설정 2. LoginController에 @SessionAttribute, 메소드 추가
  • 4. 4Page l 4 LAB 301-mvc LAB 301-mvc 실습 (1)
  • 5. 5Page l 5 LAB 301-mvc Exercise 1-1-1. “/hello.do” 에 동작하는 Controller 메소드 만들기 Exercise 1-1-2. helloworld.jsp 만들기 (위치 : srcmainwebappWEB-INFjsphello ) <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Hello eGovFrame</title> </head> <body> <h1>Hello 표준 프레임워크 </h1> </body> </html> @RequestMapping(value = "/hello.do") public String helloworld() { return getViewName(); }
  • 6. 6Page l 6 LAB 301-mvc Exercise 1-1-3. ‘Hello World’ 예제 실행결과 확인 - 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행 - 예제 실행 결과 확인 (http://127.0.0.1:8080/lab301-mvc/)
  • 7. 7Page l 7 LAB 301-mvc LAB 301-mvc 실습 (2)
  • 8. 8Page l 8 LAB 301-mvc Exercise 1-2-1. context-servlet.xml 설정 변경하기 : messageSource 활성화 Exercise 1-2-2. LoginController.java 메소드 추가하기 @RequestMapping(value = "/loginProcess1.do", method = RequestMethod.GET) public String loginFormSetUp() { return getFormView(); } @RequestMapping(value = "/loginProcess1.do", method = RequestMethod.POST) public String loginProcess(@ModelAttribute("login") LoginCommand loginCommand) { return getSuccessView(); } @ModelAttribute("loginTypes") protected List<LoginType> referenceData() throws Exception { List<LoginType> loginTypes = new ArrayList<LoginType>(); loginTypes.add(new LoginType("A", "개인회원")); loginTypes.add(new LoginType("B", "기업회원")); loginTypes.add(new LoginType("C", "관리자")); return loginTypes; } @ModelAttribute("login") protected Object referenceData4login() throws Exception { return new LoginCommand(); } <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>messages.message-common</value> </list> </property> </bean>
  • 9. 9Page l 9 LAB 301-mvc Exercise 1-2-3. LoginCommand.java 완성하기 private String id; private String password; private String loginType; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getLoginType() { return loginType; } public void setLoginType(String loginType) { this.loginType = loginType; }
  • 10. 10Page l 10 LAB 301-mvc Exercise 1-2-4. . ‘Hello World’ 예제 실행결과 확인 - 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행 - 예제 실행 결과 확인 (http://127.0.0.1:8080/lab301-mvc/)
  • 11. 11Page l 11 LAB 301-mvc LAB 301-mvc 실습 (3)
  • 12. 12Page l 12 LAB 301-mvc Step 1-3-1. context-servlet.xml 추가 설정하기 Step 1-3-2. LoginController.java 에 @SessionAttributes 설정 하기 <!-- [Exercise 1-3-3] mvc-servlet.xml 추가 설정하기 : SessionLocaleResolver를 이용한 locale 설정 --> <!-- setting Locale --> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" p:paramName="lang" /> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" /> <!-- Locale Interceptor 설정하기 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> <property name="interceptors"> <list> <ref bean="localeChangeInterceptor"/> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /> @Controller @SessionAttributes("login") public class LoginController { …
  • 13. 13Page l 13 LAB 301-mvc Step 1-3-3. LoginController.java 추가 메소드 작성하기 @RequestMapping(value = "/memberInfo.do") public ModelAndView memberInfo(HttpSession httpSession) { ModelAndView mav = new ModelAndView("login/memberInfo"); if (httpSession.getAttribute("login") != null) { mav.addObject("login", httpSession.getAttribute("login")); } return mav; } @RequestMapping(value = "/loginOut.do", method = RequestMethod.GET) public String logOut(SessionStatus sessionStatus) { if (!sessionStatus.isComplete()) sessionStatus.setComplete(); return "redirect:/loginProcess1.do"; }
  • 14. 14Page l 14 Exercise 1-3-4. . ‘사용자 정보보기’ 예제 실행결과 확인 - 예제 실행 결과 확인 Exercise 1-3-5. 국제화 적용 결과 확인 - 로그인 페이지 locale 변경(en) (http://127.0.0.1:8080/lab301-mvc-tutor/loginProcess1.do?lang=en) - 예제 실행 결과 확인 LAB 301-mvc
  • 15. 15Page l 15 LAB 302-ajax 실습 LAB 302-ajax
  • 16. 16Page l 16 실습 개요 q 실습을 통해 AJAX에 대하여 살펴본다. q 실습 순서 - Ajax를 이용한 간단한 구현 1. Ajax controller 작성 2. Ajax view설정 - DB를 연결하여 Ajax의 Autocomplete, AutoSelected기능 구현 1. HSQLDB실행 2. JSP에 AjaxTags 추가 3. Controller 일부 구현 4. ServiceImpl일부 구현 5. DAO 일부 구현
  • 17. 17Page l 17 LAB 302-ajax 실습(1) LAB 302-ajax
  • 18. 18Page l 18 LAB 302-ajax Step 2-1-1. AjaxSimpleController.java 에 simpleAjax 메소드 구현하기 Step 2-1-2. AjaxSimpleView.java 완성하기 @SuppressWarnings("unchecked") @RequestMapping(value = "/autocomplete.do") public ModelAndView simpleAjax(@RequestParam("keyword") String keyword) { ModelAndView mav = new ModelAndView(new AjaxSimpleView()); List keywordList = search(keyword); StringBuffer sb = new StringBuffer(); sb.append(keywordList.size()); sb.append("|"); for (int i = 0; i < keywordList.size(); i++) { String key = (String) keywordList.get(i); sb.append(key); if (i < keywordList.size() - 1) { sb.append(","); } } LOGGER.debug(sb.toString()); mav.addObject("ajaxSimple", sb.toString()); return mav; } writer.write((String) model.get("ajaxSimple"));
  • 19. 19Page l 19 LAB 302-ajax Exercise 2-1-3. . ‘Ajax-basic’ 예제 실행결과 확인 - 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행 - 예제 실행 결과 확인 (http://127.0.0.1:8080/lab302-ajax/)
  • 20. 20Page l 20 LAB 302-ajax 실습(2) LAB 302-ajax
  • 21. 21Page l 21 LAB 302-ajax HsqlDB 를 실행하여라.(lab302-ajaxdbrunHsqlDB.cmd) Step 2-2-1. employeelist.jsp 에서 Ajax Tags Resource를 붙여준다. Line 16 Step 2-2-2. employeelist.jsp 에서 Ajax Tags Script(AutoComplete용) 를 붙여준다. Step 2-2-3. employeelist.jsp 에서 Ajax Tags Script(select 용) 를 붙여준다. <script type="text/javascript" src="<%=request.getContextPath()%>/ajaxtags/js/prototype.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/ajaxtags/js/scriptaculous/scriptaculous.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/ajaxtags/js/overlibmws/overlibmws.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/ajaxtags/js/ajaxtags.js"></script> <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/ajaxtags/css/ajaxtags.css" /> <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/ajaxtags/css/displaytag.css" /> <ajax:autocomplete baseUrl="suggestName.do" source="searchName" target="searchName" className="autocomplete" minimumCharacters="1" /> <ajax:select baseUrl="autoSelectDept.do" parameters="depth=2,superdeptid={superdeptid}" source="superdeptid" target="departmentid" emptyOptionName="Select model"/>
  • 22. 22Page l 22 LAB 302-ajax Step 2-2-4. employeeService.getNameListForSuggest 메소드를 호출하여 결과를 가져온다. Step 2-2-5. 호출하고 보니 EmployeeServiceImpl 의 메소드가 완성되어 있지 않다. 따라서 EmployeeServiceImpl.java 를 완성한다. EmployeeService Interface 를 구현한다. Step 2-2-6. getNameListForSuggest 메소드를 구현한다.(comment 처리 를 지운다.) Step 2-2-7. employeeDao 의 getNameListForSuggest 메소드를 이용하여 검색한후 결과를 리턴한다. nameList = employeeService.getNameListForSuggest(searchName); public class EmployeeServiceImpl implements EmployeeService { public List<String> getNameListForSuggest(String namePrefix) { } public List<String> getNameListForSuggest(String namePrefix) { return employeeDao.getNameListForSuggest(namePrefix); }
  • 23. 23Page l 23 LAB 302-ajax Exercise 2-2-8. ‘AutoComplete, AutoSelected’ 예제 실행결과 확인 - 프로젝트 선택 마우스 우클릭 > Run As > Run On Server 실행 - 예제 실행 결과 확인 (http://127.0.0.1:8080/lab302-ajax/)