String
のc
タグを使用して、がnullまたは空かどうかを検証するにはどうすればよいJSTL
ですか?
名前の変数がvar1
あり、それを表示できますが、それを検証するためにコンパレーターを追加したいと思います。
<c:out value="${var1}" />
nullまたは空のときに検証したい(私の値は文字列です)。
String
のc
タグを使用して、がnullまたは空かどうかを検証するにはどうすればよいJSTL
ですか?
名前の変数がvar1
あり、それを表示できますが、それを検証するためにコンパレーターを追加したいと思います。
<c:out value="${var1}" />
nullまたは空のときに検証したい(私の値は文字列です)。
回答:
JSTLのcタグを使用して文字列がnullまたは空かどうかを検証するにはどうすればよいですか?
このためempty
にa <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
ne '' と同等です
String
の値、それはと同等ですvar ne null and var ne ''
。さらにObject
、配列、Collection
およびしていMap
ます。
nullまたは空のみをチェックする場合は、with defaultオプションを使用できます。
<c:out default="var1 is empty or null." value="${var1}"/>
このコードは正しいですが、nullまたは空の文字列の代わりに多くのスペース( '')を入力した場合、falseを返します。
これを修正するには、通常の式を使用します(以下のコードは、変数が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>