2011-06-21 6 views
0

私は新しいJSF(2)プロジェクトを開始しています。純粋なJSFにはいくつかの制限があり、私は春になる予定です。 JSFは春には比較的新しいアプローチです(スタックオーバーフローではタグのバネ面もありません:-))、jspは古典的な方法です。
技術スタックの利用可能な調整が必要です。
1)私は春のウェブフローも使用する必要がありますか?
2)春の顔(ウェブの流れの一部と思われる)+春のmvc + JPAだけを使用することは可能ですか?
3)このような構成の良い例はありますか?スプリングフローのないスプリング面

答えて

3

私はウェブの流れに精通していないよ、私はそれを使用していないなどの依存性注入

のために春3と一緒にJSF 2を使用しています。

faces-config.xmlには、SpringBeanFacesELResolverを登録できます。

<el-resolver> 
    org.springframework.web.jsf.el.SpringBeanFacesELResolver 
</el-resolver> 

JSFコードでSpring管理Beanにアクセスできます。

スプリングdocumentationAPI docsをご覧ください。

+0

だから、あなたは春の顔は使用しませんが、普通のjsf 2は、ファイルアップローダやセキュリティなどを必要としません。 – AgostinoX

+0

いいえ、春の顔は使用しません。 (私にはこれが何であるか正確にはわからない...)また、ファイルアップロードコンポーネントを持つPrimeFacesも使用しています:http://www.primefaces.org/showcase/ui/fileUploadHome.jsf。私たちはまだプロジェクトの冒頭にありますので、私たちがセキュリティをどのように処理するかについては言えません。 – Sebi

1

アプリケーションにウィザード固有のビューが重い場合は、実際にSWFを使用する必要があるかどうかは疑問です。

最も簡単な解決策は実際にはSebiがあなたに語ったものです - Spring EL Resolverを登録し、コントローラクラスに適切なステレオタイプ(通常は@Controller)と希望のスコープを付けます。そこから、手動または自動ワイヤリングによってSpring管理Beanへの参照を取得できるはずです。それはすべてです。faces-config.xmlのbean管理と "double IoC"オーバーヘッドはありません。 Springコンテキストになると、管理対象コントローラは#{} EL表記によってfaceletから簡単に参照解除されます。例えば

TestController.java:

@Controller("myController") 
@Scope("request") 

public class TestController { 

@Autowired 
private SomeSpringManagedBean someBean; 

private String someViewProperty; 

public String getSomeViewProperty() { 
     return someViewProperty; 
} 

public void setSomeViewProperty(String arg) { 
     this.someViewProperty = arg; 
} 

...... 

} 

TestView.jspx:

<p:inputText value="#{myController.someViewProperty}" /> 

私たちは、JSF 1.2と一緒にSWFに結びつけるしようとしている約2週間失ってしまいました - 実際にJSF 1.2をサポートしているIceFacesの最新バージョンで動作するようになったら、IceFacesにはフィーチャー/バグがありました。 (ライセンスを購入せずに入手できないIceFacesの1.8.2-GAバージョンで修正された)。

編集:私は基本的に同様のSOスレッドに気づいたhere

+0

ありがとう、非常にintresting。 @Controllerではなく単純な "bean"をバインドできますか? – AgostinoX

+0

私はこの質問を理解しているかどうかはわかりません。コントローラからSpring管理のBeanにアクセスする必要がある場合は、@ Autowiredまたはその他の好きな方法(私の答えに示されているように)で行います。ビューから管理されていないクラスにアクセスできるかどうかを尋ねる場合は、JSF IoCとSpringコンテナを混在させない限り、私はそう思わないと思います。いずれにしても、モデル値を表示するための最良の方法はコントローラ経由であるため、管理されていないBeanにはまったくアクセスできません。 – quantum

関連する問題