String
의 c
태그를 사용하여 a 가 null인지 또는 비어 있는지 어떻게 확인할 수 JSTL
있습니까?
이름의 변수가 var1
있고 표시 할 수 있지만 비교기를 추가하여 유효성을 검사하려고합니다.
<c:out value="${var1}" />
null이거나 비어있을 때 유효성을 검사하고 싶습니다 (내 값은 문자열 임).
String
의 c
태그를 사용하여 a 가 null인지 또는 비어 있는지 어떻게 확인할 수 JSTL
있습니까?
이름의 변수가 var1
있고 표시 할 수 있지만 비교기를 추가하여 유효성을 검사하려고합니다.
<c:out value="${var1}" />
null이거나 비어있을 때 유효성을 검사하고 싶습니다 (내 값은 문자열 임).
답변:
JSTL의 c 태그를 사용하여 문자열이 null인지 또는 비어 있는지 어떻게 확인할 수 있습니까?
에 empty
키워드를 사용할 수 있습니다 <c:if>
:
<c:if test="${empty var1}">
var1 is empty or null.
</c:if>
<c:if test="${not empty var1}">
var1 is NOT empty or null.
</c:if>
또는 <c:choose>
:
<c:choose>
<c:when test="${empty var1}">
var1 is empty or null.
</c:when>
<c:otherwise>
var1 is NOT empty or null.
</c:otherwise>
</c:choose>
또는 조건부 태그를 조건부로 렌더링 할 필요가없고 태그 속성 내에서만 태그를 확인할 수있는 경우 EL 조건부 연산자를 사용할 수 있습니다 ${condition? valueIfTrue : valueIfFalse}
.
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
이들에 대한 자세한 내용은 ${}
일합니다 ( 표현 언어 에서 분리 될 수 있습니다, JSTL을 ), 여기에서 확인 .
empty
작동하지 않습니다 Set
. JSTL 1.1로 업그레이드해야합니다 (이미 2003 년부터).
${not empty var1}
은 비어있는 것과 null을 동시에 검사합니까? 내가하고있는 경우에만이 경우 테스트가 true로 평가되는 의미 var1
입니다 하지 널 하고 var1
있다 되지 웁니다. null
별도로 확인할 필요가 없습니까?
empty
equvilant에 NE ''
String
값의 경우 와 같습니다 var ne null and var ne ''
. 또한 Object
, 배열 Collection
및을 지원합니다 Map
.
이 코드는 정확하지만 null 또는 빈 문자열 대신 많은 공간 ( '')을 입력하면 false를 반환합니다.
이 문제를 해결하려면 정규 expresion을 사용하십시오 (이 코드는 변수가 null이거나 비어 있거나 비어 있는지 확인합니다. org.apache.commons.lang.StringUtils.isNotBlank와 동일).
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:if test="${not empty description}">
<c:set var="description" value="${fn:replace(description, ' ', '')}" />
<c:if test="${not empty description}">
The description is not blank.
</c:if>
</c:if>
다음은 Java 컨트롤러에서 JSP 파일로 전달하는 int 및 String의 유효성을 검사하는 방법에 대한 예입니다.
MainController.java :
@RequestMapping(value="/ImportJavaToJSP")
public ModelAndView getImportJavaToJSP() {
ModelAndView model2= new ModelAndView("importJavaToJSPExamples");
int someNumberValue=6;
String someStringValue="abcdefg";
//model2.addObject("someNumber", someNumberValue);
model2.addObject("someString", someStringValue);
return model2;
}
importJavaToJSPExamples.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<p>${someNumber}</p>
<c:if test="${not empty someNumber}">
<p>someNumber is Not Empty</p>
</c:if>
<c:if test="${empty someNumber}">
<p>someNumber is Empty</p>
</c:if>
<p>${someString}</p>
<c:if test="${not empty someString}">
<p>someString is Not Empty</p>
</c:if>
<c:if test="${empty someString}">
<p>someString is Empty</p>
</c:if>