AEMの基盤コンポーネントは、Java Beanにあまり論理を持たない単なるJSPです。私は今、フォームコンポーネントのJavaロジックをSling Modelsに変換しようとしています。しかし、開始コンポーネントは、2つのことが行われるので簡単ではありません(/libs/foundation/components/form/start/start.jsp
からコピーされます)。 は、まず:SlingModels:foundationからフォームコンポーネントをビルドする方法(PageContextを挿入する)
FormsHelper.startForm(slingRequest, new JspSlingHttpServletResponseWrapper(pageContext));
第二:私はそれからの私のモデルを適応させる際に
componentContext.setDecorate(true);
slingRequest
は、簡単ですが、どこに、私はからpageContext
を取得しますか? pageContext
で検索できるcomponentContext
を取得する必要もあります。
SlingHttpServletRequest
て適応しながら、私は次のことを試してみました:
@SlingObject
private PageContext pc;
をしかし、これは動作しません。
EDIT:
私はのpageContextせずにフォームの開始・コンポーネントを作成する方法を考え出しました。一緒にフォームの開始とが、フォームの終わりがあり、そのまま(/libs/foundation/components/form/end/end.jsp
からコピー)のpageContextを使用して一つの部分があり
final boolean isSubmittable = FormsHelper.checkRule(resource, slingRequest, pageContext, "submittableRule");
if (isSubmittable || isEditMode) {
このブール値は、それがレンダリングする前にチェックされているという理由のためであるか、どのようなわかりませんボタン。
したがって、私はpageContext
を注入する方法が必要ですか、またはこのフォームコンポーネントをSling Modelsで構築する別の方法が必要です。
を使用することができます(あなたがやろうとしている方法PAGECONTEXT注入)、同じアプローチを実行する必要はありません - 。のpageContextはできませんJSPなしで作成できます。私はこれについて100%確信していません。 – awd
@awadheshv SlingModelsが利用可能になる前に、自分のAnnotaionsの試行でそれをやりました。カスタムタグでのみ動作しますが、スリング:adaptToタグはカスタムタグであるため、そこに挿入することができます。しかし、おそらくそれはAdobeからのものであり、PageContextが利用できないSightlyテンプレートエンジン(JSPなし)を宣伝したいからです。 – Thomas