1

私は、基本的な3つのプレゼンテーション領域を持つ古いJSPWebアプリに取り組んでいます。

トップメニュー/サイドメニュー/コンテンツ

当初、このレイアウトはIFRAMESを使用していました。トップメニューとサイドメニューがIframeからDIVアプローチに変わる前に他の人が変わったが、コンテンツIFRAMEは変わっていない。

システムのすべてのページは個別のJSPページであり、他のJSP(アクセス制御、セッション時間など)、JS、CSSなどが多数含まれています。

DIVを使用してコンテンツを読み込もうとすると、このオプションがコンテンツをベースコード(メインページ)に挿入するため、多くの問題が発生します。このコードには、独自のCSS、JS、JSPが含まれています。

a4j:include、ui:include(ファセット付きのテンプレート)、およびc:importは、DIVのようにコードを混合するオプションです。

IFRAMEのように、メインページの領域に独立した分離されたページを挿入するオプションが必要です。これがなければ、すべてのファイルコンテンツをメインページに適合させるために多くのハードワーク(そして退屈な)が必要になります。

残念ながら、私の上司はIFRAMEに留まりたくありません:)....

更新:BalusC、あなたが私の質問に答えてくれたことを光栄に思います。私は開発者としての仕事で初めての経験をしています(テレビに接続されたTK90XでBasicと最初に接触したときは子供なので、常に個人的な夢でした)、2か月前にこの仕事を始めました。多くの人を助けているウェブの周りのあなたのコメントを見ることができます。

私はJSF/JSPを非常に使い始めていますが、問題は、プロジェクトへの影響を最小限に抑えながら、IFRAMEを削除し、別のソリューションを使用してコンテンツを読み込む方法についてです。これは、Webアプリに1,000を超えるJSPファイルがあり、誰かがすでにJSFタグを使用しているためです(プロジェクトはJSFを使用するようにゆっくりと更新されます)。私たちはJAVA6、Tomcat 6、JSF1.2を使用しています。

たとえば、a4j:includeの使用に関するいくつかの問題は、インクルードされたページがメインページの一部として動作することです。

1-すべてのページでf:viewの代わりにaf:subviewタグを使用する必要があります。すでにJSFに移行しているものはすべて、f:viewを使用しています(非常に手動で変更する必要がありました)。

2-インクルードの場合、URLパス参照はメインページのパスであり、インクルードされたファイルのパスではありません(IFRAMEではこの問題は存在しません)。プロジェクトのすべてのページは、JS、CSS、JSPのインクルードを使用してフレームで動作するように作成され、それらの多くは「../../javascript/jsfile.js」のような相対パスを使用しています。

ご覧のとおり、インクルードまたはインポート(a4j、ui)を使用すると、多くのハードワークが必要になります(1,000を超えるファイルの変更。コンテンツ領域の独立したページを含むIframeのように機能するオプション(Webアプリはそのために作成されました) 、大いに役立ちます。これが正しい方法ではないことはわかっていますが、webappは非常に大きいため、テンプレートやその他のソリューションを使用して大幅な変更をすばやく行うことができます。

悪い英語と私が知らない可能性のある基本的な質問を許してください。

4

1 に答える 1

2

HTMLタグ「オブジェクト」を使用して問題を解決しました。'iframe'と同様に、このタグを使用すると、「埋め込まれたドキュメントはメインドキュメントから独立したままになります」。(w3c.org)

そして、このタグはHTMLStrictです。

'オブジェクト'に関するw3cページへのリンク: http ://www.w3.org/TR/html401/struct/objects.html

とにかくありがとう。

于 2012-04-17T22:35:56.780 に答える