[jsp] 비어 있거나 null JSTL c 태그 평가

Stringc태그를 사용하여 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을 ), 여기에서 확인 .

또한보십시오:


답변

빈 문자열을 확인하려면 다음을 제안합니다.

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<c:if test="${empty fn:trim(var1)}">

</c:if>

또한 null을 처리합니다


답변

null 또는 비어있는 경우에만 기본 옵션을 사용할 수 있습니다.
<c:out default="var1 is empty or null." value="${var1}"/>


답변

이 코드는 정확하지만 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>


답변

여기 하나의 라이너가 있습니다.

EL 내부의 3 차 연산자

${empty value?'value is empty or null':'value is NOT empty or null'}


답변

당신이 사용할 수있는

    ${var == null}

대안 적으로.


답변

다음은 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>