JSTL 구구단 isNaN()
2022. 12. 19. 15:13ㆍJSP
archive.apache.org/dist/jakarta/taglibs/standard/binaries/ 에서 다운받은 원하는 버전의 zip 파일을 압축 푼 후
압축 푼 후에 lib 폴더 내에 있는
jstl.jar 와 standard.jar 를
day39 프로젝트 내 WebContent 내 WEB-INF 내 lib 내에 넣는다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL 실습 2</title>
</head>
<body>
<!--
1단 부터 100단까지 중 사용자에게 입력받은 단수로 구구단 출력하기.
입력받은 값이 정수인지 아닌지 판단, 값을 입력했는지 안했는지 판단.
다른 페이지 이동 없이 현재 페이지에서만 기능 구현
자바스크립트 사용 가능
form에 name속성을 붙여주면 이친구는 항상 자바스크립트의 객체형태로 바로 갖다
쓸수 있다.
-->
<!-- form태그에서 action을 생략하면 현재 페이지로 전송되고, method를 생략하면 get방식으로 설정된다. -->
<form name="gugudan"><%--name속성을 붙인이유는 자바스크립트나 css에서 갖다 사용할려는구나 --%>
<input type="text" name="number">
<button type="button" onclick="send()">전송</button>
</form>
<!-- 외부에서 전달받은 파라미터가 requestScope에 저장되지 않고 쿼리 스트링을 통해 URL로 전달된다면, param 객체로 접근하여야 한다. -->
<c:set var="dan" value="${param.number}"/><%-- 사용자가 입력한 number를 dan이라는 저장공간에 넣었죠 --%>
<!-- dan(전달받은 파라미터)이 비어있지 않다면 -->
<c:if test="${not empty dan}">
<c:forEach var="i" begin="1" end="9">
<c:out value="${dan}"/>
*
<c:out value="${i}"/>
=
<c:out value="${dan * i}"/>
<br>
</c:forEach>
</c:if>
</body>
<script>
function send(){
//form태그
let frm = document.gugudan;
//사용자가 입력한 단수
let input = frm.number.value;
//소수점이 0.1~0.9면 false, 정수이거나 .0이면 true
let check = input % 1 == 0; <%-- 10을 1으로 나누면 나머지는 0 10.9를 1으로 나누면 10.9/1 나머지는 0.9 --%>
//소수점이 0.1~0.9이거나 숫자가 아니면
if(!check || !Number.isInteger(parseInt(input)) || isNaN(input)){
alert("정수만 입력해주세요.");
return; //밑으로 내려가지 않게 막아준다.
}
//.0으로 입력했다면 실수를 정수를 변환하여 다시 넣어준다.
frm.number.value = parseInt(input);
frm.submit();
}
</script>
</html>
자바스크립트 isNaN() 함수는 어떤 값이 NaN인지 판별합니다.
isNaN 함수는 몇몇 혼란스러운 케이스를 가지고 있으므로,
ECMAScript 2015에서 추가한 Number.isNaN(). 으로 바꾸는 편이 좋을 수도 있습니다.
'JSP' 카테고리의 다른 글
directive tag 와 script tag (0) | 2022.12.19 |
---|---|
웹 서버 - 아파치, 웹 컨테이너(서블릿 컨테이너), WAS(Web Application Server) - 톰캣, Servlet (0) | 2022.12.19 |
JSTL 구구단 (0) | 2022.12.19 |
JSTL param 객체 (0) | 2022.12.19 |
JSTL 제어문 실습 (0) | 2022.12.19 |