당신은 스크립틀릿 내부 JSTL을 사용할 수 없습니다 ..
저장 페이지 범위에 <c:set>
를 사용 ${result.fname}
의 값. 그리고 스크립틀릿 내부의 변수를 사용하십시오.
자세한 내용
<c:forEach items="${query.rows}" var="result">
<c:set var="lname" value="${result.lname}" />
<c:set var="fname" value="${result.fname}" />
<%
ArrayList l= new ArrayList();
l.add((String)pageContext.getAttribute("fname"));
l.add((String)pageContext.getAttribute("lname"));
for(int i=0; i<l.size(); i++)
{
out.println(l.get(i));
}
%>
</c:forEach>
, http://docs.oracle.com/javaee/1.4/tutorial/doc/JSTL4.html
http://javapapers.com/jsp/jsp-life-cycle-explain/
http://docs.oracle.com/cd/E13222_01/wls/docs81/taglib/handler.html
UPDATE
EL 특성이 범위에 저장된 - 페이지 요청 세션 어플리케이션 태그 예는 범위를 지정하지 않기 때문에, 따라서이 같은 그것을 얻을 수 있습니다 :
<c:set var="fname" value="${result.fname}" />
<jsp:useBean id="fname" type="java.lang.String"/>
<%
System.out.println(fname);
%>
참고한다 :
<c:set var="fname" value="${result.fname}" />
<%
String fname = (String)pageContext.getAttribute("fname");
System.out.println(fname);
%>
는 대안 스크립틀릿 변수를 생성 useBean
태그의 기능을 악용 EL 변수와 Scriptlet 변수는 처음에 같은 String을 가리키고 있습니다. 그러나 스크립틀릿 코드에서 문자열을 변경하면 EL 변수가 변경되지 않은 채로 가리키는 값이 변경됩니다.
JSP가 프리젠 테이션 용으로 사용하는 경우에만 제공되며이 링크를 체크 아웃, 그래서 서블릿의 목록을 채우는과 JSP로 다시 전달하려고합니다. –
스크립틀릿 내부에서 jstl을 사용할 수 없습니다 .. JSP 라이프 사이클 및 태그 라이브러리를 통해 이동하십시오 ... – Shashi
@ maxx777 생성 된 서블릿은 $ {result.fname}을 정적 값으로 인식합니다 .. – Shashi