본문 바로가기
JSP/웹페이지 만들기

JSP 웹페이지 만들기 9장 연습문제(다국어)

by 미눅스[멘토] 2023. 7. 15.
728x90

1.다국어란 무엇인가?

1) JSP에서 다국어란 웹 브라우저를 사용하는 국가에 따라 다양한 언어 및 지역을 지원하는 서비스 이다.

2) 다른 언어와 지역적 차이를 기술 변경 없이 소프트웨어에 바로 적용하는 것

3) 국제화(internationalization,i18n),지역화(localization, L10n)를 포함한다.

 

2. Locale클래스를 이용한 다국어 처리 기법에서 현재 웹 브라우저에 미리 정의된 언어나

국가 정보를 가져오는 request 내장 객체의 메소드는 무엇인가?

답 : getCountry()메소드

 

3.다국어 처리를 위한 JSTL fmt 태그의 종류에 대해 설명하시오,

1. Locale을 설정할 수 있는

setLocale 태그,  메세지 처리를 위한 bundle 태그,

message태그, setBundle태그,

 

2.날짜 형식을 사용하기 위해

formatDate 태그,parseDate태그,

 

3.숫자 형식을 사용하기 위해

formatNumber태그, paraseNumber태그

등등 존재함

 

 


 

 

4.Locale클래스를 이용하여 조건에 맞게 JSP 어플리케이션을 만들고 실행 결과를 확인하시오.

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@page import="java.util.Locale"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h4>현재 로케일</h4>
<%
Locale locale = request.getLocale();
%>
<p>언어 : <%=locale.getDisplayLanguage() %></p>
<p>국가 : <%=locale.getDisplayCountry() %>

</body>
</html>

 

 

 

 

 

 


 

 

5.JSTL fmt 태그를 이용하여 다음 조건에 맞게 JSP 어플리케이션을 만들고 실행 결과를 확인하시오.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"  %>  
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
	
	<fmt:setLocale value="${param.language }" />
	
	<fmt:bundle basename="ch09.com.bundle.myBundle">
	
		<div>
			<a href="?language=ko">Korean /</a> <a href="?language=en">English</a>
		</div>
	
		<label><fmt:message key="id" /> </label>
		<input type="text"> <br/>
		
		<label><fmt:message key="password" /></label>
		<input type="text"> <br/>
		
		<input type="button" value="<fmt:message key="button" />">
		
	</fmt:bundle>

</body>
</html>

 

 

 


6.다음 조건에 맞게 도서 웹 쇼핑몰을 위한 웹 어플리케이션을 만들고 실행 결과를 확인하세요

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"  %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
<link rel="stylesheet"
   href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"> 
<script type="text/javascript" src="/js/jquery-3.6.0.js"></script>
<script type="text/javascript" src="<%=request.getContextPath() %>/resources/js/validation.js"></script>
<script>


$(function(){
	console.log("개똥이");
	//이미지 미리보기 시작
	$("#productImage").on("change",handleImg);
	function handleImg(e){
		//첨부파일들
		let files = e.target.files;
		//파일 배열 Object
		let fileArr = Array.prototype.slice.call(files);
		//파일 반복
		fileArr.forEach(function(f){
			if(!f.type.match("image.*")){
				alert("이미지 확장자만 가능합니다.");
				//함수 종료
				return;
			}
			let reader = new FileReader();
			//e : 파일 읽을 때 이벤트
			reader.onload = function(e){
				let img_html = "<img src='"+e.target.result + "'style='width:100%;'/>";
				//class = col-sm-5 divImg
				$('.divImg').html(img_html);
				
			}
			//리더로 파일 읽음
			reader.readAsDataURL(f);
		});
	}
	
})

</script>
   
   
</head>

<body>

<fmt:setLocale value="${param.language }"/>
<fmt:bundle basename="bundle.message">

<%@ include file="menu.jsp" %>
	<div class="jumbotron">
		<div class="container">
			<h1 class="display-3">
				<fmt:message key="titile" />
			</h1>
		</div>
	</div>

<div class="container">
	<div class="text-right">
		<a href=?language=ko>Korean</a> <a href=?language=en>English</a>
		
	</div>


	<form name="addForm" action="./processAddBook2.jsp" class="form-horizontal" enctype="multipart/form-data" method="post">
	<div class="form-group row">
		<label class="col-sm-2" for="bookId"><fmt:message key="bookId"/></label>
		<div class="col-sm-3">
			<input type="text" id="bookId" name="bookId">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="name"><fmt:message key="name"></fmt:message></label>
		<div class="col-sm-3">
			<input type="text" id="name" name="name">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="unitPrice"><fmt:message key="unitPrice"/></label>
		<div class="col-sm-3">
			<input type="text" id="unitPrice" name="unitPrice">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="author"><fmt:message key="author"/></label>
		<div class="col-sm-3">
			<input type="text" id="author" name="author">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="publisher"><fmt:message key="publisher"/></label>
		<div class="col-sm-3">
			<input type="text" id="publisher" name="publisher">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="releseDate"><fmt:message key="category"/></label>
		<div class="col-sm-3">
			<input type="text" id="releseDate" name="releseDate">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="totalPages"><fmt:message key="totalPages"/></label>
		<div class="col-sm-3">
			<input type="text" id="totalPages" name="totalPages">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="description"><fmt:message key="description"/></label>
		<div class="col-sm-5">
			<textarea name="description" cols="50" rows="2" class="form-control"></textarea>
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="unitsInStock"><fmt:message key="unitsInStock"/></label>
		<div class="col-sm-3">
			<input type="text" id="unitsInStock" name="unitsInStock">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2" for="category"><fmt:message key="category"/></label>
		<div class="col-sm-3">
			<input type="text" id="category" name="category">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2"><fmt:message key="condition"/></label>
		<div class="col-sm-5">
			<input type="radio" name="condition" value="New "><fmt:message key="condition_New"/>
			<input type="radio" name="condition" value="Old"> <fmt:message key="condition_Old"/>
			<input type="radio" name="condition" value="Refurbished"> <fmt:message key="condition_Refurbished"/>
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-2"><fmt:message key="bookImage"/></label>
		<div class="col-sm-5">
			<input type="file" id="productImage" name="filename">
		</div>
	</div>
	<div class="form-group row">
		<label class="col-sm-5"><fmt:message key="bookImage"/></label>
		<div class="col-sm-5 divImg"></div>
	</div>
	
	<div class="form-group row">
		<div class="col-sm-offset-2 col-sm-10">
			<input type="button" class="btn btn-primary" value="<fmt:message key="button"/>" onclick="CheckAddBook()">
		</div>
	</div>
	</form>
</div>
</fmt:bundle>
<%@ include file="footer.jsp" %>
</body>
</html>

 

영어로 

 

 

 

 

한글로 했을때