問題タブ [seam3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsf-2 - cdi、seam 3、primefaces 3 の代替
私はかなり長い間 JSF アプリケーションを開発してきました。3、4 年前、私は seam 2 を発見しましたが、それは素晴らしかったです。今、私はjsf 2 + cdi + seam 3 + primefaces 3を試すことにしました(このバージョンはまだ最終版ではないことを知っています)が、途中で非常に多くの問題が発生したため、代替手段を探しています。
したがって、誰かが jsf 2 に追加するフレームワークを教えてくれれば、html 5 対応の jsf 2 の上にある facelets やコンポーネント ライブラリとうまく連携できます。
また、私はjsf 2を置き去りにするつもりはありません。そのため、より良い代替手段があれば試してみたいと思っています。
Java EE 6 スタック、ejb 3.x などとうまく連携する必要があります。
seam - seam 3 プロジェクトを作成する
私はseam3が初めてで、netbeans/eclipseでseam3プロジェクトを作成する方法をグーグルで検索しましたが、まだ良いチュートリアルが見つかりません. この問題を解決するのを手伝ってください。また、どの IDE が seam に適していると思いますか? ありがとう。
java - Seam 3 で @Inject EntityManager できるようにするための設定
私が使用している私のプロジェクトでは、注釈Seam 3
を挿入する際に問題が発生しています。どちらを使用するかを確認するための何らかの構成があると確信しています。たとえば、次のように入力できます。 EntityManager
@Inject
EnityManager
PersistenceUnit
EJB
persistence.xml
ファイルで構成されている永続性ユニット。ここに私の疑似構成があります:
私は Seam 2 に関するいくつかの記事を読みましたが、設定はcomponents.xml
以下を追加することによってファイルで行われます:
<components>
タグの内側。Seam 2 の次のステップは、以下を追加することです。
の中にpersistence.xml
しかし、Seam 3 にはファイルがありませんcomponents.xml
。unitName
また、@Inject
アノテーションには永続化ユニットを指定する 属性がありません。
ネット上の多くの例に示されているように 、 @Inject
with を使用できるようにプロジェクトを構成するのを手伝ってください。EntityManager
私はPostgres
データベースとを使用していますJBoss AS 7
。
編集:例を追加します。クラスEntityManager
では を使用しません。Entity
ここで、「」 @Inject
から警告が表示されますEclipse
No bean is eligible for injection to the injection point [JSR-299 §5.2.1]
うまく動作@Inject
するとマークされているいくつかの豆でEntity
使用すると。@Inject
jsf-2 - jsf test processValidation フェーズでカスタム検証をテストするにはどうすればよいですか?
javax.faces.validator を実装するカスタムバリデータクラスがあります。私の質問は、jsf ライフサイクル プロセスの検証フェーズでどのようにテストできるかです。テストしようとすると、このフェーズに入らなかったか、失敗しました。
java - SeamSolder@MessageBundleが実装クラスを生成するMavenエラー
ここで、SeamSolder3.1.0で@MessageBundleを使用するためのドキュメントに従いました。
しかし、Mavenが生成されたアノテーションをコンパイルしようとすると、コンパイル時にエラーが発生します。
[エラー]エラー:com.apps.web.messagesパッケージファイルを読み取ることができません。原因:java.io.FileNotFoundException:com.apps.web.messages / WebMessages
ターゲットディレクトリをチェックインすると、ファイルが正しく生成されます。
target /generated-sources / annotations / com / apps / web / messages / WebMessages_ $ bundle.java
Mavenプラグインまたはコンパイラは、WebMessages_ $ bundleで生成されたファイルをコンパイルしようとすると、src / main / java / com / apps / web /messages/にローカライズされたインターフェイスWebMessagesを見つけることができないようです。
環境:
Seam Solder 3.1.0.Final / Maven 3.0.3 / JDK 1.7 / JBoss AS 6.1.0
hibernate - JPA/Hibernate は、EJB/Seam 環境でのコミット時に UPDATE を発行しません
JBoss 7、Hibernate をデフォルトの JPA 実装として、JSF を Web フロントエンドとして使用する Seam 3 サンドボックス アプリケーションがあります。
SQL UPDATE がデフォルトで飲み込まれてしまうという問題があります。
会話スコープのステートフル EJB は、拡張スコープの EntityManager と 1 つのエンティティ、コンテナー管理トランザクションを維持します (新規が必要)
- EntityManager が注入される
- EJB は EM を使用してエンティティをロードし、それをフィールドに保持します。
- JSF アプリケーションは EJB とそのエンティティにアクセスし、文字列フィールドを変更します
- JSF アプリケーションが EJB の「Save」メソッドを呼び出す
- save() で、エンティティフィールドが変更されたかどうかを確認します->適切に変更されました
- save() が終了した後、コンテナーはトランザクションをコミットします。
- 問題: DB に対して SQL 更新が実行されません。
save() を次のように拡張すると:
a) entityManager.contains(entity) UPDATE が期待どおりに実行される (結果は「true」)
また
b) entityManager.persist(entity) UPDATE が期待どおりに実行される
Q: 私が理解している限りでは、a) または b) のいずれの仕様も必要とされるべきではありません。なぜなら、エンティティはプロセス全体を通して管理されたままであるからです。a) が節約に影響する理由がわかりません。b) は保存に効果があるとイメージできますが、必須ではないはずです。
どんな説明でも大歓迎です。
これが私のEJBです:
jsf - Web アプリケーション アプリケーションのプロパティ戦略
JSF、CDI、および Seam 3 で記述された Web アプリケーションがあり、すべてのビューでレンダリングされるすべての文字列を含むプロパティ ファイルがあります。多くの価値を持つもの。
よく構造化されたプロパティ ファイルを持つためのベスト プラクティスはありますか?? ビューごとに 1 つのプロパティを持つことは、優れた「プロパティ設計」ですか?? ビューごとに 1 つのプロパティを持つということは、1 つのビューを削除したり、何かをリファクタリングしたりするときに、アプリケーションが多くの言語を表示する準備ができている場合、多くのファイル (プロパティ) を変更する必要があることを意味します。すべての文字列で...
助言がありますか??
ありがとう
login - Seam 3 はログイン後に「キャプチャ ビューへのリダイレクト」機能をどのように処理しますか?
これが私のユースケースです。
のログインページがあります/public/login.xhtml
。他のすべてのページは、アクセスする前にログインする必要があります。それらは/pages/
ディレクトリにあります。
それが欲しいです :
- ユーザーがアクセスする
http://host/myapp/pages/*
と、最初にログイン ページにリダイレクトされ、次に最初に入力した URL にリダイレクトされます。 - ユーザーが にアクセスすると
http://host/myapp/
、最初にログイン ページにリダイレクトされ、次に にリダイレクトされます/pages/home.xhtml
。 - ユーザーが にアクセスすると
http://host/myapp/public/login.xhtml
、最初にログイン ページにリダイレクトされ、次に にリダイレクトされます/pages/home.xhtml
。 - ユーザーが にアクセスし
http://host/myapp/public/login.xhtml
、すでにログインしている場合は、 にリダイレクトされ/pages/home.xhtml
ます。
現在何が機能していますか?
Seam 3 (v3.1.0.Final) と Security + Faces モジュールを使用すると、私のユース ケースn°1 は自動的に次のように動作します。
私の問題は、「キャプチャ ビュー」へのリダイレクトを行うために Seam がどのように機能しているかを理解していないことです。
Seam 2 では、理解しやすかっcomponents.xml
たです。
notLoggedIn
そのため、イベントをキャプチャし、loginSuccessful
それをコンポーネントで処理しましたredirect
。
Seam 3 では、その構成が見つかりませんでした: 何もないようで、クラス@Observes LoggedInEvent
もありません...Redirect
ポイントn°2はそのファイルで達成され/index.htm
ます:
しかし、私のポイント 3については、完全には機能しないソリューションを試しました。
最初に私はそれを試しましたlogin.xhtml
:
の有無にかかわらずonPostback="true"
、ログインした後もログインページにエラーメッセージが表示されたままです (2 回) 。 {identity.login}» と結果 «success». ". 再度アクセスしhttp://host/myapp/public/login.xhtml
た場合にのみviewAction
、ホームにリダイレクトされます。
でそのナビゲーションルールも試しましたfaces-config.xml
:
しかし、その後、私のユース ケース 1 は無効になりました。ログインするたびに、ホームにリダイレクトされました。
最後に、私のポイント n°4ではs:viewAction
、仕事をします。
では、これら 4 つのユース ケース (一般的なユース ケースだと思います)、特にポイント n°3 を正しく処理するためのベスト プラクティスを知っている人はいますか?
jsf-2 - JSF Converter(コレクションを参照)を使用する場合の遅延読み込みの例外
これは、この問題について多くの研究を行った後の私の最初の投稿です。
この例は、シーム3.1(はんだ+永続性+面)を備えたJboss 7.1で実行され、シーム管理された永続性コンテキストを備えています
failed to lazily initialize a collection, no session or session was closed: org.hibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed
エンティティBeanでコンバータを使用する場合の古典的な問題に直面しています。目的は、JPAモデルを再利用することにより、100%オブジェクト指向を維持することです。
Beans.xmlで、org.jboss.seam.transaction.TransactionInterceptor
アクティブ化されます
エンティティBean:
JSFページ:
バッキングBean(SessionScopedの後にConversationScopedで試しました->同じ問題)
そしてコンバーター(縫い目に強く影響を受けていObjectConverter
ます):
シームの実装をネットで検索しないように、このコンバーターをここに配置しましたが、<s:objectConverter/>
タグの代わりにタグを使用するのと同じであることに注意してください。<f:converter converterId="statutConverter"/>
どんな助けでも喜んでいただければ幸いです。
seam3 - Seam 3 スケジューリング
必要なのは、現在の seam アプリで本当に基本的なスケジューリングを行うことだけです。誰かがスケジューリングに関する基本的なチュートリアルの方向性を教えてくれますか、それとも seam のより良い例を教えてくれますか?