겉바속촉
[html] JSTL-자바영역 변수 출력 본문
728x90
반응형
이번에는
JSTL에서 자바영역의 변수를 출력해보려고 합니다!
다음과 같이 코드를 작성해주세요:)
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<!-- 자바영역에 저장한 변수는 jstl변수로 변환하거나
request나 session에 저장 후 사용도 가능하다-->
<c:set var="msg" value="Happyday"/>
msg: ${msg}<br>
<%
String name="홍길동";
%>
이름: ${name }<br>
</body>
</html>
그리고 컴파일 해보시면
다음과 같이 msg는 값이 나오지만 name은 출력이 되지 않고 있네요?!
자바 영역의 변수라서 그렇습니다
그럼
이제 추가로 작성해볼게유
<방법1>
주소랑 혈액형을 각각 request 와 session 영역에 저장해줄거에요
그리고 다음과 같이 출력해보면 값이 나오는 것을 확인할 수 있습니다:)
${reqestScope.저장된 변수}
${sessionScope.저장된 변수}
<방법2>
자바부분의 변수를 jstl영역의 태그로 변경해줄거에요
<c:set var="name1" value="<%=name1%>"/>
그리고 다음과 같이 출력해보면 값이 나오는 것을 확인할 수 있습니다:)
${name1}
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<!-- 자바영역에 저장한 변수는 jstl변수로 변환하거나
request나 session에 저장 후 사용도 가능하다-->
<c:set var="msg" value="Happyday"/>
msg: ${msg}<br>
<%
String name="홍길동";
%>
이름: ${name }<br> <!-- request에 저장된 name을 찾아서 출력...값은 안나옴 -->
<%
String addr="서울시 구로구";
request.setAttribute("addr", addr); //request영역에 저장된 것
session.setAttribute("blood", "AB"); //session영역에 저장된 것
%>
주소: ${addr }<br>
주소: ${requestScope.addr }<br>
혈액형: ${sessionScope.blood }<br>
<%
String name1="이영자";
%>
<!-- 자바부분의 변수를 jstl영역의 태그로 변경 -->
<c:set var="name1" value="<%=name1 %>"/>
이름1: ${name1}
</body>
</html>
위에서 배웠던 방법 2가지
방법1 -> 리퀘스트에 저장한 변수 출력하기
방법2 -> 자바영역 변수를 jstl 영역 변수로 고쳐주기
2가지 모두 활용해서 다음과 같은 코드를 연습해볼게요:)
<%@page import="java.util.List"%>
<%@page import="java.util.Vector"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<!-- 자바영역에서 벡터 출력 -->
<%
List<String> list=new Vector<String>();
list.add("바나나");
list.add("사과");
list.add("배");
list.add("오렌지");
list.add("키위");
list.add("자몽");
request.setAttribute("list1", list);
%>
<!-- 자바영역에서 벡터선언 후 리퀘스트에 저장한 변수를 출력하기 -->
<c:forEach var="a" items="${list1}">
${a }<br>
</c:forEach>
<hr>
<!-- 자바영역의 벡터변수를 jstl의 변수로 변환 후 출력하기 -->
<c:set var="list2" value="<%=list %>"/>
<c:forEach var="b" items="${list2 }">
${b }<br>
</c:forEach>
</body>
</html>
728x90
반응형
'IT일기(하반기) > HTML' 카테고리의 다른 글
[html] JSTL-foreach, format연습하기 (0) | 2020.06.24 |
---|---|
[html] JSTL-parameter 연습하기 (0) | 2020.06.24 |
[html] JSTL(Java Servlet Standard Tag Library) (0) | 2020.06.24 |
[html] 간단한 쇼핑몰 만들기 - 방명록편 (0) | 2020.06.24 |
[html] 간단한 쇼핑몰 만들기 -로그인 편 (0) | 2020.06.23 |