以下の jsp のように、テキスト ボックスが Transfer Object から値を受け取るとします。
<INPUT TYPE="text" NAME="test" ID="test" value="<%=testTO.getTest()%>">
ただし、getTest が null を返した場合は null が表示されます。
使い方 ?: スクリプトレットを使用して、値が null の場合は空白を表示し、それ以外の場合は TO から返された値を表示します。
testTO.getTest() == null ? "" : testTO.getTest()
これを試してみてください、きっとうまくいきます。
WebLogic Server を使用している場合は、設定があります ( Using the WebLogic JSP Compiler を参照) 。
-noPrintNulls
Shows "null" in jsp expressions as "".
null
この場合を防ぎます。コンテナに同様の機能がある場合があります。利点: コードの変更は不要です。これはweblogic.xmlでも設定できると思います。
JSPでヌルスペースを非表示にするには:-
それがあなたに役立つかどうかはわかりませんが、私の場合はうまくいきました。
私はweb-logic10.3を使用しており、nullを非表示にしたいjspは私のWebアプリケーションの一部です。
手順:
パッケージエクスプローラでWeblogic.xmlを見つけます。
このWeblogic.xmlを開きます。
Weblogic.xmlの[JSP]タブをクリックします。
[出力オプション](右上)の[JSP]タブで、[Nullの印刷]チェックボックスをオフにしました。
アプリケーションをビルドしてデプロイすると、テキストボックスにNullが表示されなくなります。
使用EL
またはJSTL
表現。式言語はヌルセーフです。
if(testTO.getTest()!=null) {
out.print("<input type=\"text\" name=\"test\" id=\"test\" value=\""+testTO.getTest()+"\">");}
else
{
out.print("<input type=\"text\" name=\"test\" id=\"test\" value=\"\">");
}
空白を印刷するには、次のように使用します。
<INPUT TYPE="text" NAME="test" ID="test" value="<%= ((testTO.getTest()==null)?"":testTO.getTest()) %>">
この条件を追加してください
(&& testTO.getTest().length() == 0)
すでに文字列を返している場合、そうでない場合はこれを使用する必要があります
(&& testTO.getTest().toString().length() == 0)
<INPUT TYPE="text" NAME="test" ID="test" value="<%= ((testTO.getTest()==null && testTO.getTest().length() == 0)?"":testTO.getTest()) %>">