1

JSP useBean taglib をクラスアノテーションとして実装したいのですが... 可能ですか? もしそうなら、これを行うための最良の(簡単で効率的な)方法は何ですか?

例:

  <jsp:useBean id="p" class="beans.Person" scope="application"></jsp:useBean>

-->

  //Custom annotation goes here...
  @ManagedBean
  public class Bean {

  }
4

1 に答える 1

1

標準の JSP 機能を直接使用する方法はありません。コントローラーの手段がないため、オールドスクールの<jsp:useBean>アプローチもMVCとはほど遠いものです。Spring MVCJSFなどのビューとして JSP をサポートする既存の MVC フレームワークを選択するだけです (ただし、JSF はバージョン 2.0 以降の JSP の後継である Facelets をデフォルトのビュー テクノロジとして使用します)、そのマネージド Bean 機能を使用します。最新の MVC フレームワークは注釈をサポートしています。

この特定のケースでは、アプリケーション スコープ Bean を使用して、MVC フレームワークを必要とせずにアノテーションを使用する完全に異なる代替手段は、ServletContextListenerでアノテーションが付けられた を使用することです@WebListener

@WebListener
public void Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        event.getServletContext().setAttribute("p", new Person());
    }

    // ...
}

Person(ただし、アプリケーション スコープにa のようなものがあるのはかなり奇妙ですが...)

セッション スコープの場合は実装できHttpSessionListener、リクエスト スコープの場合はServletRequestListener. この方法はかなり不器用です。まともなMVCフレームワークを本当に検討したいと思います。

于 2012-08-05T01:43:43.210 に答える