2011-01-03 6 views

答えて

7

これを行うためのstruts2タグはありませんが、OGNLではstruts1タグよりも多くの可能性と表現力がありますが、nullと空文字列の両方を簡潔にチェックする方法はありません。

次作品:ヌルのテストは平等のためのテストを変更することはできませんので

<s:if test="(myString == null || myString.equals(''))"> 
    myString is blank or null 
</s:if> 
<s:else> 
    The value is <s:property value="myString"/> 
</s:else> 

テストは、短いcircutingに依存しています。

これをテストする必要が頻繁に発生する場合、設計上の問題がある可能性があります。適切な検証では、ビューが依存する初期化されていないオブジェクトを持つべきではありませんが、常に例外があると思います。クォータニオンの答えに追加するには

3

  1. あなたが常に特定の条件をチェックするためにあなたの行動にメソッドを追加することができ、例えばMyAction.isPropertyXEmpty() Struts2のプロパティであること<if test=...>条件

  2. リコールに入れますStrutsよりも豊富な/豊かな表現型です。別のタイプがより適切であれば、文字列を使用しないでください。また、ヌルの問題を回避するために、ヌル以外の値(空の文字列など)に初期化することもできます。

+0

JSTLの場合は、/ when/otherwiseを選択することをお勧めします。 –

1

スティーブンさんのコメントに拡張するには、

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

は、その後、使用してインポートすることができます。

<c:if test="${empty myStruts2Var}"> 

または

<c:if test="${not empty myStruts2Var}"> 
関連する問題