Java 관련/JSTL, EL: 13개의 글
화면을 수정했는데, 클라이언트의 브라우져에 캐시가 남아서 이전 화면이 나오는 경우가 있다. 직접 브라우져 설정 들어가서 캐시를 지워달라고 요청 할 수도 있지만, 그게 한두번이 아니게 되니 코드에서 캐시를 지울수 없는지 찾아보았다. 이럴수가... 크게 어렵지도 않지만, html한정으로 이게 꼭 필요한 화면이 아니면 아래 설정은 가급적 안 하는게 좋을 것 같다. HTML 메타태그 이용하기 JSP, Java 사용시 자바 코드 지만 html과 같음. response.setHeader( "Pragma", "no-cache" ); response.setDateHeader( "Expires", -1 ); response.setHeader( "Cache-Control", "no-cache" ); JS, CSS 파일 캐..
jstl 내장함수 JSTL functions은 JSTL에서 제공하는 각종 함수를 사용해서 문자열이나, 컬렉션들을 처리함. fn태그는 단독으로 사용할 수 없고 EL 표현식 내에서 사용해야함. like ${fn:length(...)} jsp 페이지 시작점에 다음 태그로 선언 해줘야 사용 할 수 있음. boolean contains(String sting, String substring) string이 substring을 포함하면 return true. boolean containsIgnoreCase(String string, String substring) 대소문자에 관계없이, string이 substring을 포함하면 return true. ${fn:contains("helloworld", "world")..
[JSP, JSTL] fn function 정리 jstl function (jstl fn) 정리 jsp 파일 최 생단에 다음과 같이 jstl functions를 사용하겠다고 선언 해야 함. 함수들은 단독으로 사용할 수 없고 EL 표현식과 함께 사용해야 함. ${fn:length(list)} ${fn:contains(str, str)} fn:contains(string, substr) string이 substr을 포함하면 return true fn:containsIgnoreCase(string, substr) 대소문자 관계없이 string이 substr을 포함하면 return true fn:startsWith(string, prefix) string이 prefix로 시작하면 return True fn:en..
[JSP, JSTL] forEach 잘 사용하기 Spring 개발을 하다 보면 jstl 의 forEach 를 많이 사용하게 된다. 간단하지만 varStatus 속성 사용을 잘 하면 보다 편하게 개발할 수 있는것 같아서 남겨본다. current (현재 객체) : ${i.current} index (0부터의 순서) : ${i.index} count (1부터의 순서) : ${i.count} first (루프의 처음인가) : ${i.first} last (루프의 마지막인가) : ${i.last} begin (루프의 시작값) : ${i.begin} end (끝값) : ${i.end} step (증가값) : ${i.step} 출처 : https://jeaha.dev/70
JSTL에서 값을 가져오려면 VO에서 Getter Setter 처리를 해야 한다. 아래와 같이 BoardPaging에 startPageNo이르는 변수를 추가하였다. 그러나 Getter and Setter 하지 않은 상태 해당 값을 Controller를 통하여 listBoard.jsp로 넘겼다. 코드를 실행하고 Board를 클릭하였는데, 아래와 같이 아무런 것도 표시안되는 문제가 발생한다. 그러나 아래와 같이 Getter와 Setter를 추가하면 코드 실행시 정상 출력되는 것을 확인할 수 있다. 참고할 사항은 반환하는 것은 Getter가 하는 것이니 굳이 Setter까지 추가할 필요는 없으나 필자는 나중에 Set 기능을 사용할 수 있으니 그냥 추가했다. 출처 : namubada.net/192?categor..
JSTL에서는 java와 같이 break문이 없다. 그리고 변수에 java 키워드를 입력하면 오류가 발생한다. [Java Web/JSTL, EL] - [JSTL] javax.el.ELException: Failed to parse the expression라는 JSTL 오류 그럼 JSTL forEach문에서 break처리하는 방법에 대해 보도록하겠다. 아래와 같이 done_loop 변수를 선언한 후 if문에 넣어 놓는다. 이후 if문으로 done_loop 변수가 false에서 true로 set되면 loop가 종료된다. [${i}] ▶다음 출처 : namubada.net/189?category=778442
아래와 같이 break 처리하기 위해 문장을 넣었더니 javax.el.ELException: Failed to parse the expression 오류가 발생했다. 이유는 톰캣7이후부터 new, class, static 같은 java키워드는 사용하지 못하도록 변경되었다고한다. 필자의 원인은 break이라는 키워드였다. [${i}] ▶다음 해당 키워드를 done_loop로 변경한 후 정상 구동되었다. [${i}] ▶다음 출처 : namubada.net/188?category=778442
본인은 날짜 포맷을 2019-12-06 00:00:00 형식에서 2019-12-06 형식으로 변경하려고했다. jstl로 변경했으며, 변경 방법이 다소 햇갈리기 때문에 아래와 같이 기재하려고한다. 우선 날짜 포맷을 변경하기 위하여 우리가 준비해야 할 것은 아래와 같다. 1. 태그 라이브러리추가 2. fmt:fmt:parseDate : String 형을 받아서 워하는 포멧으로 자료형을 Date 형태로 변경 시켜 준다. ** 여기서 중요할 부분은 현재 String형과 동일하게 기재해줘야함 아래 사진에 자세히 설명 3. fmt:formatDate : Date 형을 받아서 원하는 포멧으로 날짜 형태를 변경시켜 준다. //String형 > Date형 // 원하는 포맷으로 변환 필자는 아래와 같이 taglib를 추가..
아래와 같이 사진에서 jstl로 choose를 사용하여 A일 경우 VIP가 표시되도록 설정하고자한다. 그런데 아래와 같이 choose when을 사용했으나 아래 사진과 같이 아무것도 표시 안되는 것을 확인할 수 있다. 이유는 아래 사진에서 확인할 수 있다. jstl 문법의 경우 ""안에 띄어쓰기가 되어 있을 경우 값을 불러올 수없다. 그러므로 위와 같이 띄어쓰기된 부분을 없애주면 사진과 같이 정상 출력되는 것을 확인할 수 있다. 출처 : namubada.net/122?category=778442
EL(Expression Language)란 데이터를 표현하기 위한 언어이다. 즉, 다양한 위치에 있는 데이터에 접근하기 위한 언어로 JSP의 기본 문법을 보완하는 역할을 한다(주로 HTML에서 JSP 문법을 없애고자할 때) 기본문법 기본문법은 주로 ${표현식 }으로 사용한다. - 표현식에는 변수명, 속성명, 메소드 구조로 이루어져있다. - 정수형, 실수형, 문자열형, 논리형, null이 올 수 있다. 아래와 같이 사용할 수 있으니 참고하도록하자 회원번호회원성명전화번호주소가입일자고객등급거주지역 ${board.custno } ${board.custname } ${board.phone } ${board.address } ${board.joindate } ${board.grade } ${board.city }..