カスタムタグハンドラー内でHTMLを生成しないようにする方法について、この質問に対する答えを見つけようとして壁にぶつかりました。この質問者のように、タグハンドラーで大量のステートメントを回避しようとしてprintln()
います。実際には、別の.jspファイルからデータを取得したいと思います。
したがって、私は提案された方法を試しました:
public int doStartTag() throws JspException {
try {
pageContext.getResponse().flushBuffer();
pageContext.getRequest()
.getRequestDispatcher("/views/tags/loginBlock.jsp")
.include(pageContext.getRequest(), pageContext.getResponse());
} catch (Exception e) { throw new RuntimeException(e); }
return EVAL_BODY_INCLUDE;
}
ただし、取得しているのは、タグが配置されているjspの出力の上にあるloginBlock.jspのコンテンツであり、を呼び出しても、予想どおりにタグの代わりに挿入されていませんflushBuffer()
。
答えを得ようとしている質問がありますが、Googleの神々は今夜私に親切ではありません:
- タグハンドラーからHTMLのブロックを挿入する必要がある場合、これが最善の方法ですか?
- 元の回答では、ポスターは従来のタグハンドラーを使用しています。代わりに、単純なタグハンドラー(つまり、SimpleTagSupportを拡張するクラス)を使用してそれを行う方法はありますか?
- 上記の質問の質問者が回答を受け入れましたが、成功した結果を複製することはできません。質問者が私が省略しているものを拾い上げたものが欠けていますか?
- 私はここで私が気づいてさえいない何らかの方法で基地から離れているだけですか?私はjsp/サーブレット全体に少し慣れていないので、このデザインパターンが私が使用すべきものであるかどうかは100%確信していません。
println()
基本的に、ビジネスロジックを実行して結果のHTMLを生成するバックエンドJavaを呼び出すjspファイルを設計しようとしていますが、上記のように、Javaタグハンドラーに大量の呼び出しを貼り付けたくありません。
ヘルプや洞察をありがとう!