Expression Language が JSP ページで機能しません。JSP 式タグを使用しているだけですが、式の結果が null になると例外がスローされる可能性があります。例: <%= h.getHtml() %> . 代わりに ${h.html} を使用できます
1 に答える
作成する ToolTwist ウィジェットで生成される JSP コードは、単純な標準 JSP コードです。Java Beans、EL、タグ ライブラリ、および JSP のその他のさまざまな機能を使用することは可能ですが、ほとんどのプロジェクトでは、最も基本的な JSP 式に固執することで、コードの意味が最も明確になるため、将来の保守が容易になることがわかります。
ほとんどのタグは、特別なセマンティクスを使用したり、ロジックを別の場所に移動したりすることを犠牲にして、JSP コードを取り除き、より HTML に似せるように設計されています。この分離は、アプリケーション ロジックに精通していない Web デザイナーが JSP を維持する場合に便利ですが、ToolTwist の場合、JSP コードを編集するのではなくデザイナーを使用してページが変更されるため、この目的は多かれ少なかれ冗長です。 .
ほとんどのウィジェットは 1 回作成され、その後はほとんど変更されないため、重要な考慮事項は、特別なセマンティクスやタグ ライブラリの定義について考えたり調べたりする必要なく、コードを一目で理解できるようにすることです。最も単純な JSP 構文を使用すると、デバッグとテストが容易になり、将来コードを検討する必要があるプログラマーに高く評価されます。
このコンテキストでは、最も単純なというのは、「コードの行数が最も少ない」というよりは、「最も理解しやすい」という意味であることに注意してください。
例外については、<%= と %> 内のコードが標準の Java コードであることを思い出してください。Java コードが例外をスローすると、JSP コードも例外をスローします。この場合、getHtml() はユーザーが作成したメソッドであるため、これを文字列として使用する場合は、null を返さないようにする必要があります。または、使用する前に値を確認してください。
<%
String html = h.getHtml();
if (html == null) {
html = "";
}
%><%=html%>
一般的な悪い習慣は、メソッドを 2 回呼び出すことです。これをしないのが最善です:
<%= (h.getHtml() == null) ? "" : h.getHtml() %>
全体として、現在 null を返している getHtml() メソッドを "" を返すように変更することをお勧めします。