전자정부표준프레임워크 마지막 화면처리이다.

제일 처음은 컨트롤러랑 JSP코드 작성해서 프로그래밍 언어 배울때 제일 처음 항상 하는 HELLO WORLD 띄워보기 하핳..

새 프로젝트 하나 만들어주고 context-servlet.xml 파일에다가 ViewResolver 설정인 아래 코드 내용 먼저 작성해주기.

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

그 다음은 컨트롤러 파일에다가 URL이랑 View랑 연결해주는 @RequestMapping 관련 코드 작성.

@RequestMapping(value = "/hello.do")
	public String helloworld() {
    	return getViewName();
}

세 번째로는 JSP 파일 즉 View 만들고 실행시켜서 결과 출력 확인하기.

<%@ 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 WORLD!</h1>
	</body>
</html>

다음은 웹사이트들을 보면 한국어, 영어, 중국어 등 국제화 가능한데 이거 설정하는거를 간단히 실습해보기로 한다.

역시나 먼저 관련 bean을 context-servlet.xml 파일에 설정해주기.

<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"
		p:paramName="lang" />

	<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

	<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" />

그 다음은 LoginController에 @SessionAttributes 설정해주고 톰캣 서버 재기동해주기.

@Controller
@SessionAttributes("login") 
public class LoginController {
	...
}

@RequestMapping(value = "/memberInfo.do")
	public ModelAndView memberInfo(HttpSession httpSession) {
		ModelAndView mav = new ModelAndView("/login/memberInfo"); 
		return mav;
	}
	
@RequestMapping(value = "loginOut.do", method = RequestMethod.GET)
	public String logOut(SessionStatus sessionStatus) {
		if(!sessionStatus.isComplete())
			sessionStatus.setComplete();
		return "redirect:/loginProcess1.do";
}

여기서 또 하나 알아두면 좋은 것은 프로퍼티 파일(.properties)이다.

프로퍼티 파일은 파라미터들 미리 저장하기 위해 자바 관련 기술을 주로 사용하는 파일들을 위한 확장자로,

국제화와 지역화를 위한 문자열을 저장하는데 사용할 수도 있는 key=value 형식으로 작성하는 파일이다.

화면처리의 마지막이자 전자정부 표준 프레임워크 관련 글의 마지막 내용인 AJAX로 자동완성 구현하기이다.

먼저 컨트롤러단 코드 작성해주고, bean도 등록해주기.

@RequestMapping(value = "/autoCompleteSimple.do")
	public ModelAndView simpleAjax(@RequestParam("keyword") String keyword) throws Exception{

    	ModelAndView modelAndView = new ModelAndView();
    	modelAndView.setViewName("jsonView");
    	
    	String decode_keyword = URLDecoder.decode(keyword,"utf-8");

		List<?> keywordList = search(decode_keyword);
		
		LOGGER.debug("result >" + keywordList.toString());
		
		modelAndView.addObject("resultList", keywordList);

		return modelAndView;
}


<!-- context-servlet.xml파일에 bean 등록(jsonView 선언) -->
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
	<property name="contentType" value="text/html;charset=UTF-8" />
</bean>

그 다음은 화면단이 될 JSP 파일 생성해주고 여기에다가 AJAX를 위한 jquery 코드도 작성해주고 실행시켜보기.

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <title>Basic</title>
	<!-- jQuery -->
	<link rel="stylesheet" href="<c:url value='/css/jqueryui.css'/>"/>
	<script src="<c:url value='/js/jquery.js'/>"></script>
	<script src="<c:url value='/js/jqueryui.js'/>"></script>
	
<script type="text/javascript">
$(document).ready(function(){
    $("#keyword").autocomplete({
      source: function(request, response){
    	   $.ajax({
    		  url:"<c:url value='/autoCompleteSimple.do'/>",
    		  contentType: "application/x-www-form-urlencoded; charset=UTF-8",//
    		  data: {keyword : encodeURIComponent(request.term)}, //after the input event
    		  dataType:'json',
    		  success: function(returnData, status){	  
    			response(returnData.resultList);
    		  }
    	  }); 
      },
      minLength : 1,
      select: function(event, ui){
    	    $("#keyword").val(this.value);
      }
    });
    
 
});
	
</script>
</head>
<body>
<form name="search">
<input type="text" name="keyword" id="keyword" />


</form>

</body>
</html>

input에다가 K만 입력했는데도 자동완성되어서 데이터들이 보여지는 것을 알 수 있다.

이러케 전자정부 알아보기 끝!!!!!