개발자의 끄적끄적

[java] JSP EL 변수명 동적으로 처리하는법 본문

개발/java & jsp

[java] JSP EL 변수명 동적으로 처리하는법

효벨 2020. 4. 14. 01:00
728x90
반응형

[java] JSP EL 변수명 동적으로 처리하는법

 

 

for(int i = 0; i < 10; i++) {

mav.addObject("fname" + i, fname[i]);

}

 

이렇게 콘트롤러에서 지정하면, JSTL로 받을 때 어렵습니다.

 

${fname0}, ${fname1}, ...

이렇게 직접 지정하면 됩니다만,

 

<c:forEach begin="0" end="4" varStatus="status">

${fname${status.index}}

</c:forEach>

 

이러면 실행이 안 되고 예외가 발생합니다.

Stacktrace:] with root cause

org.apache.el.parser.ParseException: Encountered " <ILLEGAL_CHARACTER> "{ "" at line 1, column 12.

Was expecting one of:

 

해결방안:

 

이런 경우 JSTL의 requestScope와 <c:set/>을 이용하면 됩니다.

<c:set var="fname" value="fname${status.index}" />

${requestScope[fname]}

 

-----------------------------------------

변수명이 index1, index2 와 같다고 할때 ${fname${status.index}} 이런식의 접근은 불가능하다.

하지만 다음과 같이 jstl을 이용하면 변수명을 동적으로 구성해 줄 수 있다.

반드시 범위를 지정하고 []를 사용해서 접근 한다.

 

출처: https://okky.kr/article/254512

반응형
Comments