-1

Expression Language が JSP ページで機能しません。JSP 式タグを使用しているだけですが、式の結果が null になると例外がスローされる可能性があります。例: <%= h.getHtml() %> . 代わりに ${h.html} を使用できます

4

1 に答える 1

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() メソッドを "" を返すように変更することをお勧めします。

于 2012-11-07T07:33:31.387 に答える