2011-11-29 13 views
3

Java Spring MVCの新機能です。公式の文書は非常に貧弱で、私はSpringでのページのレンダリングについて多くの質問をしています。Spring MVC。レンダリングのレイアウト

メニューがあるページとトップブロックがあります。このメニューは動的で、すべてのページに表示する必要があります。 PHPのフレームワークでは、これは非常に一般的で非常に簡単な作業です。しかし、春は私の脳を爆発させます。どうすればこのメニューのレンダリングをロジックの平和で分けることができますか?例えば、JSPで。私は豆やその他のものを使用していますか?

ありがとうございました!

+1

これはSpring MVCがレイアウトエンジンではないため、Springでは言及されていません。他のフレームワークに委譲するだけです。 – skaffman

答えて

3

公式ドキュメントは

いいえ、それはない非常に悪いです。そのone place私はいつも参考にしています。

私はjsp includeを使用しています。はい、コントローラからjspにJava Beanを渡します。インクルードされたjspは、初めてインクルードされるときにキャッシュされます。他の場所では、私はjqueryとajaxを使ってコントローラに接続し、ページを動的に更新します。

official tutorialskramsをおすすめします。

1

これはSpringの範囲外であるため、これに関する多くの情報はSpringのドキュメントでは見つかりません。

PHPインクルードの場合と同じようにJSPインクルードを使用できます。しかし、これはページレイアウトを繰り返すようにあなたを強制し、アプリケーションの各と各ページに含まれます:

<jsp:include page="/menu.jspf" /> 

それともSitemeshまたはApacheタイル(春にタイル統合のためのhttp://static.springsource.org/spring/docs/3.1.0.RC1/spring-framework-reference/html/view.html#view-tilesを参照)のようなテンプレートエンジンを使用します。

+0

しかし、menu.jspで利用できるデータが必要な場合は、どこから入手する必要がありますか? consoller&From beanから? – zim32

+0

モデルから。 SpringはModelという概念を持っています。これは栄光のあるMapです。このモデルに必要なものを格納し、JSP ELとJSTLはJava Beanにアクセスするように設計されているため、モデルにはBeanのインスタンスが含まれている必要があります。 –

0

最も簡単な方法は、< jspを使用することです:include page = "/ menu.jsp"/> "/menu.jsp"はメニューjspへのパスです。

tilesのような他の解決策がありますが、< jsp:>を実行する必要があります。

+0

しかし、menu.jspで利用できるデータが必要な場合は、どこから入手する必要がありますか? consoller&From beanから? – zim32

+0

@ zim32メニューが同じjsp上にあった場合と同じ方法で取得できます。 – soulcheck

+0

@ zim32おそらく、あなたがコントローラや他のものによって返されたModelAndViewにデータを渡す必要があるかもしれません。 – soulcheck

関連する問題