Develop/JavaScript JQuery JSP

0805 XML,EL,JSTL

포페PostFace 2022. 8. 10. 17:30

0805

비어있는 기간 동안에는 JSP로 쇼핑몰을 구현하는 개인 프로젝트를 진행했습니다.

차후 깃헙같은 곳에 업로드하도록 하겠습니다.

XML

noti.xml

<?xml version="1.0" encoding="utf-8" ?>
 <쪽지 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="noti.xsd">
	<수신>김상민</수신>
	<발신>황현숙</발신>
	<제목>출장 스케쥴</제목>
	<내용>이번 주말 출장 잊지마세요.</내용>
</쪽지>



noti.xsd

<?xml version="1.0" encoding="utf-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
	<element name="쪽지">
		<complexType> 
			<sequence>
				<element name="수신" type="string"/>
				<element name="발신" type="string"/>
				<element name="제목" type="string"/>
				<element name="내용" type="string"/>
			</sequence>
		</complexType>
	</element>
</schema>


<!-- 요소의 의미로 element 순서와 규칙을 정의 -->
<complexType> 자식이 있음을 알려줌.
<sequence> 안에 순서가 정의 됨을 알려줌.


xsd 파일은 xml schema 파일을 만들면 된다.

minOccurs 최소 개수 정의 안쓰면 디폴트 1
maxOccurs 최대 개수 정의 unbounded는 무한대다.

<고객:정보> => namespace : 태그명
jsp:useBean
jsp:include 와 같은 형식.


EL Expression Language
JSP의 기본 문법을 보완하는 스크립트 언어
간결한 소스 작성을 위해 탄생한 개념
표기법은 $로 시작한다.

${"Hello"} <br>
\${ 3+4 } = ${ 3+4 } <br>
\${ "3"+"4" } = ${ "3"+"4" } <br>
\${ "3 + 4" } = ${ "3 + 4" } <br>

결과
Hello 
 ${ 3+4 } = 7 
 ${ "3"+"4" } = 7 
 ${ "3 + 4" } = 3 + 4 


연산자가 제공된다.

${ 10 eq 20 } <br>
${ 10 == 20 } <br>
${ 10 ne 20 } <br>  
${ 10 != 20 } <br>  
${ 10 gt 20 } <br>
${ 10 > 20 } <br>
${ 10 lt 20 } <br>
${ 10 < 20 } <br>


아이디1:<%=request.getParameter("id") %><br> 4,5와 같다.
아이디2:<%=pb.getId()%> <br>
아이디3:<jsp:getProperty name="pb" property="id"/> <br>
아이디4:${ param.id } <br>
아이디5:${ param['id'] } <br>
아이디6:${ pb.id } <br> 2,3,7과 같다.
아이디7:${ pb["id"] } <br>




id비교1 : <%=request.getParameter("id") == "jessica"%> false <br>
id비교2 : <%=request.getParameter("id").equals("jessica") %> <br>
id비교3 : ${ param.id == "jessica" } <br>
id비교4 : ${ param.id.equals("jessica") } <br>
id비교5 : ${ param.id eq "jessica" } <br>


JSTL JSP Standard Tag Library
자바 문법 없이 태그만으로 JSP문장을 작성.

jstl.jar 와 standard.jar 파일이 필요하다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
태그 라이브러리 c라는 이름에 주소를 담아놓음.

out 태그
<c:out value="Hello"/>
<c:out value="${ 'Hello' }"/>

set 태그
<c:set var="h" value="Hello"></c:set>
h : ${ h }<br>

반복문 forEach태그

<c:forEach var="i" begin="1" end="10" step="1">
	${param.dan} X ${i} = ${ i*param.dan }<br>
</c:forEach>

<select>
	<c:forEach var="i" begin="1" end="30">
		<option value='${i}'>${i}</option>
	</c:forEach>
</select>




Integer.parseInt와 같은 기능 작동하기 

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 <fmt:parseNumber var="avg2" value="${avg}" integerOnly="true"/>

if와 switch~case 와 같은 형식

<c:if test="${param.food=='피자'}">
피자
</c:if>
<c:if test="${param.food eq '짜장면'}">
짜장면
</c:if>
<c:if test="${param.food.equals('떡볶이')}">
떡볶이
</c:if>
<c:if test="${!(param.food=='피자'||param.food eq '짜장면')||param.food.equals('떡볶이')}">
그 밖의 음식	<!--else가 없으므로 이런식으로 작성해야한다.  -->
</c:if><br>
<c:if test="${param.food != '피자' && param.food ne '짜장면' and !param.food.equals('떡볶이')}">
그 밖의 음식	<!--else가 없으므로 이런식으로 작성해야한다.  -->
</c:if>



switch~case
(어떠한 조건에 해당되면 break와 같이 내려가지 않는다.)

<c:choose>
	<c:when test="${param.food=='피자'}">
		피자
	</c:when>
	<c:when test="${param.food=='짜장면'}">
		짜장면
	</c:when>
	<c:when test="${param.food=='떡볶이'}">
		떡볶이
	</c:when>
	<c:otherwise> //default와 같은 기능
		치킨
	</c:otherwise>>
</c:choose>



el코드의 함수로 배열의 갯수 구하기

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
배열의 갯수 : ${fn:length(mList) }

일반 for문으로 배열 출력

<c:forEach var="i" begin="0" end="${fn:length(mList)-1 }">
	${mList[i]}
</c:forEach>



확장 for 문 형식으로 마지막에는 쉼표붙이지 않기

<c:forEach var="movie" items="${mList }" varStatus="status">
	${movie} 
	<c:if test="${!status.last }">
		,
	</c:if>
</c:forEach>








'Develop > JavaScript JQuery JSP' 카테고리의 다른 글

0809 JSP Servlet  (0) 2022.08.10
0808 JSP Servlet  (0) 2022.08.10
0721 게시판 만들기  (0) 2022.07.22
0720 JSP JDBC로 만든 칼럼 추가 삭제  (0) 2022.07.22
0721 게시판의 구조 + ip주소 방식 설정  (0) 2022.07.22