출처 : http://egloos.zum.com/nije/v/942268

forEach는 다음과 같은 속성을 가진다.

  • items : forEach가 순회할 Collection 개체를 지정한다.
  • begin : 반복문의 시작값을 설정한다.
  • end : 반복문의 종료값을 설정한다.
  • step : 반복문의 증가값을 설정한다.
  • var : 반복문의 순회시 해당하는 값을 담을 변수를 설정한다.
  • varStatus : 변수의 상태를 담을 변수를 설정한다.

기본적으로 forEach는 begin 과 end 속성만 설정해주면 동작하며 그 외 속성은 추가적인 옵션이다. 물론 이 두 부분만 설정됬을때는 세부적인 제어가 불가능 하고 step은 기본값으로 1이 작용한다.

 <c:forEach begin="1" end="9">
  <c:out value="foreach" /><br>
 </c:forEach>


다음과 같이 기본적인 소스 코드 실행시 결과는 아래와 같다.


△ 기본적인 begin과 end에 의해 몸체의 foreach만 9회 반복된 결과


begin 속성과 end 속성을 통해 시작값과 종료값을 지정하면 자바의 for문과 마찬가지로 증가값을 지정해 줄 수 있다.

 <c:forEach begin="1" end="9" step="2">
  <c:out value="foreach" /><br>
 </c:forEach>


소스코드에 위와 같이 step을 증가해준다.


△ step값을 지정하여 반복문의 몸체가 5회만 출력된 모습


위와 같이 step속성을 지정해주면 증가값을 설정할 수 있기 때문에 반복횟수는 5회로 나타난다. 그리고 step 속성은 0보다 작을 수
없으며 0보다 작은 즉, -값으로 설정하게 되면 javax.servlet.ServletException: 'step' <= 0 과 같은 Exception이 발생하게된다. 반복문에서 콜렉션의 사이즈에서 0이 될때까지 순회하는 방식의 사용은 불가능할듯 하다.

var속성은 반복문의 시작값 + 증가값을 변수에 담아둘 수 있는 속성이다. 위 소스에 var를 추가해보면

 <c:forEach begin="1" end="9" step="2" var="x">
  <c:out value="${ x } : foreach" /><br>
 </c:forEach>


△ 반복문의 시작값 + 증가값을 var 속성을 통해 변수에 담아 화면에 출력한 결과




varStatus 속성은 var 속성을 통해 변수에 담은 반복문의 값의 상태를 담고있는 변수를 지정한다. 예를 들자면 step은 얼마인지. begin은 몇부터 시작해서 end는 얼마인지 하는등을 변수에 담아둘 수 있다.

 <c:forEach begin="1" end="9" step="2" var="x" varStatus="status">
  <c:out value="${ x } : foreach : ${ status.first }" /><br>
 </c:forEach>


소스에서 사용한 first는 변수가 첫값인가를 부울값으로 반환하는 속성이다.


△ varStatus 속성을 사용하여 화면상에 출력한 모습




varStatus속성은 다음과 같은 멤버를 가진다.

[출처] http://blog.naver.com/csk7179/80112888854


수정화면을 개발시 읽을 수만 있고 변경을 못 하도록 할때 일반적으로

<input type="text" name="title" readonly> 처리를 한다.

그런데 체크박스/라디오버튼/Select는 readonly 프로퍼티가 먹지 않는다.

다른 방법은 disabled ( 예:<select name="jobtype" disabled> )

인데 이건 안타깝게도 처리화면으로 값을 넘기지 못한다.

 

해서 웹을 헤메이다 찾은 소스를 소개 합니다.

 

Select 에서 Readonly 와 같은 동작을 하게 하는 소스 입니다.

 

아래부분을 쫙 긁어다 붙여서 테스트 해보세요.^^

 

<소스 시작>

 

< select name='choice' id='choice' readonly style='background-color:#ababab'
onFocus='this.initialSelect = this.selectedIndex;'
onChange='this.selectedIndex = this.initialSelect;' >
<option value=''> </option>
<option value='Y' selected>Y</option>
<option value='N'>N</option>
</select>

<script type="text/javascript">

$(document).ready(

function() {

var latlng = 중심좌표;

var myOptions = {

zoom : 17,

center : latlng,

mapTypeId : google.maps.MapTypeId.ROADMAP

}

var map = new google.maps.Map(document

.getElementById("map"), myOptions);


var latlngRoute = 좌표좌표좌표;

var marker = new google.maps.Marker({

position : latlngRoute,

map : map,

title : '표시내용'

});

var flightPlanCoordinates = [

이동경로1, 이동경로2 ....

                           ];

   var flightPath = new google.maps.Polyline({

                  path: flightPlanCoordinates,

                  geodesic: true,

                  strokeColor: '#FF0000',

                  strokeOpacity: 1.0,

                  strokeWeight: 2

                  });

   

flightPath.setMap(map);

});



</script>



<div id="map" style="width: 460px; height: 380px;"></div>



<script type="text/javascript">

$(document).ready(

function() {

var latlng = ${routeEnd.beacon_gps};

var myOptions = {

zoom : 17,

center : latlng,

mapTypeId : google.maps.MapTypeId.ROADMAP

}

var map = new google.maps.Map(document

.getElementById("map"), myOptions);


<c:forEach var="rl" items="${routelist }">

var latlngRoute = ${rl.beacon_gps};

var marker = new google.maps.Marker({

position : latlngRoute,

map : map,

title : '${rl.location_outTime}'

});

</c:forEach>

var flightPlanCoordinates = [

<c:forEach var="rl3" items="${routelist }">

${rl3.beacon_gps },

</c:forEach>

                           ];

   var flightPath = new google.maps.Polyline({

                  path: flightPlanCoordinates,

                  geodesic: true,

                  strokeColor: '#FF0000',

                  strokeOpacity: 1.0,

                  strokeWeight: 2

                  });

   

flightPath.setMap(map);

});



</script>

'Computer > JSP Servlet JavaScript' 카테고리의 다른 글

콤보박스(select) Readonly  (0) 2016.03.21
JavaScript GoogleMapAPI 사용하기 예제  (0) 2016.02.16
Javascript Form submit div 지정  (0) 2015.12.07
JSP 에러페이지  (0) 2015.01.21
JSP 액션태그 forward 예제  (0) 2015.01.20
$('#create').submit(function() { // catch the form's submit event
    $.ajax({ // create an AJAX call...
        data: $(this).serialize(), // get the form data
        type: $(this).attr('method'), // GET or POST
        url: $(this).attr('action'), // the file to call
        success: function(response) { // on success..
            $('#created').html(response); // update the DIV
        }
    });
    return false; // cancel original event to prevent form submitting
});
<form id=create method=POST action=create.php>
<input type=text name=url>
<input type="submit" value="Create" /> 

<div id=created></div>


Web.xml


<error-page> <!-- 404에러처리 -->

<error-code>404</error-code>

<location>/error/404code.jsp</location>

</error-page>

<error-page><!-- 500에러처리 -->

<error-code>500</error-code>

<location>/error/500code.jsp</location>

</error-page> 



/error/404code.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

response.setStatus(HttpServletResponse.SC_OK);

%>

<html>

<head>

<title>404에러페이지</title>

</head>

<body>요청하싞페이지는존재하지않습니다.

</body>

</html>

forwardTestForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>forward 액션태그</title>
</head>
<body>
<h2>forward 액션태그</h2>
<form method="post" action="forwardTest.jsp">
아이디: <input type="text" name="id"><br> 취미: <select
name="hobby">
<option value="WOW">WOW</option>
<option value="만화보기">맊화보기</option>
<option value="스타2-군단의심장">스타2-군단의심장</option>
</select><br> <input type="submit" value="입력완료">
</form>
</body>
</html>


forwardTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
%>
포워딩하는페이지forwardTest.jsp로절대표시되지않습니다.
<br>
<jsp:forward page="forwardToTest.jsp" />
forwardTest.jsp페이지의나머지부분으로표시도실행도되지않습니다.


forwardToTest.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

String id = request.getParameter("id");

String hobby = request.getParameter("hobby");

%>

포워딩되는페이지forwardToTest.jsp 입니다.

<br>

<b><%=id%></b>

님의

<br>

취미는

<b><%=hobby%></b>

입니다.



'Computer > JSP Servlet JavaScript' 카테고리의 다른 글

Javascript Form submit div 지정  (0) 2015.12.07
JSP 에러페이지  (0) 2015.01.21
JSP 액션태그 include 예제  (0) 2015.01.20
JSP 내장객체예제  (0) 2015.01.20
JSP Request 예제  (0) 2015.01.20

includeTestForm.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<html>

<head>

<title>include 액션태그</title>

</head>

<body>

<h2>include 액션태그</h2>

<form method="post" action="includeTest.jsp">

이름: <input type="text" name="name"><br> 페이지이름: <input

type="text" name="pageName" value="includedTest"><br> <input

type="submit" value="입력완료">

</form>

</body>

</html>



includeTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

request.setCharacterEncoding("utf-8");

%>

<%

String pageName = request.getParameter("pageName");

pageName += ".jsp";

%>

포함하는페이지includeTest.jsp 입니다.

<br>

<hr>

<jsp:include page="<%=pageName%>" flush="false" />

includeTest.jsp의나머지내용입니다.



IncludedTest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name = request.getParameter("name");
%>
포함되는페이지includedTest.jsp 입니다.
<p>
<b><%=name%></b> 님오셨구려..
<hr>


'Computer > JSP Servlet JavaScript' 카테고리의 다른 글

JSP 에러페이지  (0) 2015.01.21
JSP 액션태그 forward 예제  (0) 2015.01.20
JSP 내장객체예제  (0) 2015.01.20
JSP Request 예제  (0) 2015.01.20
JSP if 예제  (0) 2015.01.20

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%@ page import="java.util.Enumeration"%>

<%

String names[] = { "프로토콜이름", "서버이름", "Method방식", "컨텍스트경로", "URI",

"접속핚클라이언트의IP" };

String values[] = { request.getProtocol(), request.getServerName(),

request.getMethod(), request.getContextPath(),

request.getRequestURI(), request.getRemoteAddr() };

Enumeration<String> en = request.getHeaderNames();

String headerName = "";

String headerValue = "";

%>


<html>

<head>

<title>request 내장객체예제</title>

</head>

<body>

<h2>웹브라우저와웹서버정보표시</h2>

<%

for (int i = 0; i < names.length; i++) {

out.println(names[i] + " : " + values[i] + "<br>");

}

%>

<h2>헤더의정보표시</h2>

<%

while (en.hasMoreElements()) {

headerName = en.nextElement();

headerValue = request.getHeader(headerName);

out.println(headerName + " : " + headerValue + "<br>");

}

%>

</body>

</html>

'Computer > JSP Servlet JavaScript' 카테고리의 다른 글

JSP 액션태그 forward 예제  (0) 2015.01.20
JSP 액션태그 include 예제  (0) 2015.01.20
JSP Request 예제  (0) 2015.01.20
JSP if 예제  (0) 2015.01.20
Servlet HelloServlet 예제  (0) 2015.01.20

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

request.setCharacterEncoding("utf-8");

%>

<%

String num = request.getParameter("num");

String name = request.getParameter("name");

String grade = request.getParameter("grade");

String subject = request.getParameter("subject");

%>

<h2>학생정보</h2>

<table border="1">

<tr>

<td width="150">학번</td>

<td width="150"><%=num%></td>

</tr>

<tr>

<td width="150">이름</td>

<td width="150"><%=name%></td>

</tr>

<tr>

<td width="150">학년</td>

<td width="150"><%=grade%>학년</td>

</tr>

<tr>

<td width="150">선택과목</td>

<td width="150"><%=subject%></td>

</tr>

</table>

'Computer > JSP Servlet JavaScript' 카테고리의 다른 글

JSP 액션태그 include 예제  (0) 2015.01.20
JSP 내장객체예제  (0) 2015.01.20
JSP if 예제  (0) 2015.01.20
Servlet HelloServlet 예제  (0) 2015.01.20
JSP 스크립트 요소  (0) 2015.01.19

+ Recent posts