1

少なくとも基本的な使い方では、velocity と freemarker はかなり似ているように見えます。

とにかく、「組み込み」または標準のビューフレームワークとは何ですか? 次のようになります。

<c:if test="${someobject.property != null}">
4

2 に答える 2

6

JSTLで使用されているのは、おそらく統一式言語 (EL)です。

もっと似てると思う

<c:if test="${someobject.property != null}">
于 2010-02-25T22:37:10.220 に答える
5

それは確かにJSTLです。ただし、組み込みではありませんが、jstl-1.2.jarを にドロップ/WEB-INF/libし、TLD ドキュメントに従って、JSP ページの上部でその taglibs の 1 つを宣言するだけです

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

このようにして、リンク リストのタグで を使用できます。コア タグのほとんどは単なるフロー制御タグです。JSTL にはXMLSQLの taglibs もありますが、これらは迅速なプロトタイピングのみを目的としており、実際の運用では使用しないでください。次に、国際化とローカリゼーション(i18n と l10n)に最適なFormat (fmt) taglib があります。最後に、シンプルな EL 関数を提供する便利な関数 (fn) taglib があります。

それから${}物事があります。これを表現言語と呼びます。PageContext#findAttribute()Javabean getters を使用して呼び出し、Javabeanのような方法でページ、リクエスト、セッション、およびアプリケーション スコープのいずれかで「バックエンド データ」(属性) にアクセスするだけです。scriptletsを理解している場合は、次の例を理解できます。

${user.address.street}

これは大まかに次のように解決されます

<%= pageContext.findAttrubute("user").getAddress().getStreet() %>

EL はnullsafeです。${user}またはがに${user.address}解決されるとnull、すべてスキップされ、何も表示されません。スクリプトレットでは、ネストされた呼び出しで NPE を取得するかnull、最後の呼び出しで単に NPE を取得します。

#{}次に、構文で示される統合 EL があります。(これまでのところ) JavaServer Faces (JSF)と組み合わせてのみ使用されます。最後のプロパティで Javabeanセッターを呼び出すことができます。例えば

<h:inputText name="foo" value="#{bean.foo}">

舞台裏で大まかに次のようにします

pageContext.findAttribute("bean").setFoo(request.getParameter("foo"));

ちなみにビューテクノロジーではありません。JSP 自体は、すでに独自のビュー テクノロジです。JSTL は単なるtaglibです。EL は JSP 仕様の一部にすぎません。Java EE が提供するもう 1 つのビュー テクノロジはFaceletsです。これは XHTML ベースであり、JSP よりもはるかにシームレスな JSF の統合を提供します。

于 2010-02-25T22:55:40.713 に答える