問題タブ [portlet]
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.
java - ポートレット 2.0 (jsr286) のスプリングによる開発
liferay インストールでの単純なポートレット開発から、Spring webmvc ポートレット ベースの開発に切り替えるのが良い考えかどうかを議論しています。
まもなくいくつかのポートレットの開発を開始しますので、今がその時です。しかし、Spring 3.0 よりも古いバージョンでは機能しないポートレット 2.0 機能の一部を使用したいという問題があることがわかりました。(右?)
待つ価値があるかどうか、誰か洞察がありますか? (とにかく 3.0 はいつ予定されていますか?) 現在のマイルストーンは十分に安定していますか?
私たちの最初の本当のリリースは今年の最後の四半期になるので、SpringSource の連中は最終版をリリースするまでに時間が残っています... ;-)
何か案は?
アップデート
そのため、Spring 3 がリリースされ、必要なすべての JSR286 機能がサポートされています。(JSR286機能のかなり完全なサポートだと思います)
私が見ている唯一の欠点は、注釈に関して最新ではないドキュメントです。
java - Displaytag ライブラリ - ページング要求の検出
現在、Liferay のポートレットを開発しています (Spring MVC フレームワークを使用)。ここで、ポートレットに表示するリストにページングを実装するために、displaytag ライブラリを使用しました。
私の問題は、現在のリクエストが displaytag ライブラリのページング コントロールによって開始されたかどうかを検出する必要があることです。私が見つけたのは、ページングを行うときに、表示されている現在のページを示す "d-4157739-p=2" のようなパラメーターが URL に追加されることです。だから私はできる
..そして、isPagingRequest (ブール値に変更できます) に値がある場合、リクエストは displaytag ページングによって開始されています。ただし、これは非常に悪いコーディングであるため、避けたいと思います。さらに、「d」と「p」の間の数はさまざまであり、それを検出するのは非常に困難です。
現在のリクエストがページングによって引き起こされたかどうかを検出する方法を誰かが提案していますか??
どうもありがとう
java - JSR仕様を実装する方法
1つまたは2つのJSRAPIの実装を検討しています。私はまだ仕様全体を読んでいませんが(実装をコーディングするときにそれらを読む予定です)、私はそれらに非常に精通しています。JSRプロセスには、前述のJSR実装をテストするためのテスト互換性キット(TCK)の実装が含まれていることを読みました。
実装の正当性/完全性を検証するために一連の単体テストを書き始める前に、このTCKを本当に使用したいのですが、それが利用可能かどうかはわかりません。すべてのファイルをダウンロードしてグーグルで調べたところ、特定のJSRのTCKとして定義できるものは見つかりませんでした。
したがって、私の質問は基本的に次のとおりです。JSR仕様の独自の実装を作成するには、どのような手順を実行する必要がありますか。また、実際に実装したことを確認するにはどうすればよいですか。
その価値については、JSR-168とJSR-286の実装を検討していますが、それはこの質問には関係ないと思います。
java - ポータル/ポートレットプログラミング-ポートレットリンク/ページフロー
私は最初のポートレットベースのアプリケーションを作成しています(liferay用ですが、ソリューションはコンテナに依存しない必要があります)。さまざまなポートレット(ポータルのさまざまな「ページ」にある可能性があります)に「つながる」ユーザーへのリンクを提供するために、人々がどのように解決するのか疑問に思っています。 )。
ポートレット内でさまざまな表示モードを簡単に設定できますが、別のポートレットにリンクして、(おそらく)パラメーターを渡すにはどうすればよいでしょうか。
私は、ポートレット間の単純な通信について話しているのではありません。私が興味を持っているのは、実際のページフローです。
例:ニュース項目のリストを表示するポートレットを含むページAがあります。次に、構成された方法でページBがあります。単一のニュース項目を表示したいのです(たとえば、その周りのさまざまなポートレット)。
ページBにリンクし、ニュース-詳細-ポートレットにアイテムXYZを表示するように指示する一般的な解決策はありますか?
手っ取り早い解決策は、news-list-portletの編集モードを介してターゲットリンクを構成することです。ただし、これにはいくつかの欠点があります。-複雑なポートレットには複数のターゲットURLが含まれている可能性があり、ポータル管理者の大規模な構成作業につながる可能性があります-URLは単純なパラメータインジェクションを許可するスキームに従わない可能性があります
私は解決策を考えていますが、これには多大な労力が必要であり、ターゲットのポートレットを変更する必要があります。これは、サードパーティのポートレットを使用している場合は常に可能とは限りません。
私の解決策は次のようになります:(ドラフト!)
ポートレットは、ポートレットIDを使用して中央サービスに登録します。ポートレットがポートレットにリンクする場合は、シンボリック名に基づいてルックアップを実行できます。これにより、ポートレットを「自動検出」できるため、管理者の苦痛が軽減されます。このサービスは、ソースおよびターゲットポートレットに基づいてポートレットをワイヤリングするためのUIを提供する場合もあります。
変更可能なポートレットのURL生成は、パラメータが挿入されたURL全体を生成して返すポートレットへのサービス呼び出しによって解決できます。変更できないポートレットの場合は、パラメータを追加して、それが機能することを期待する必要があります。:-/
助言がありますか?より簡単な解決策はありますか?既存のソリューション?
ありがとう!
パトリック
spring - Validator を使用して Spring SimpleFormController にリクエスト パラメータを保持する
これをきちんと説明できればと思います。Spring を使用して、Liferay のポートレットを開発しています。ピンボードシステムです。そのため、特定のピンボード エントリの詳細を示すビュー (Jsp) があり、その ID が指定されています。さらに、ユーザーが現在見ているピンボード エントリに新しいコメントを追加するための AddCommentController へのリンクがあります。AddCommentController は、Spring の SimpleFormController を拡張し、バリデーターもアタッチされています。
バリデータは非常にシンプルで、次のようになります。
ユーザーがコメントを入力できるビューには、保存とキャンセルの 2 つのボタンがあります。以下は、対応する URL の 2 つのジェネレーターです。
AddCommentController の onSubmitAction で、パラメーターを読み取り (上記の最初の actionURL を参照)、ピンボード エントリの詳細ビューの ActionResponse st に渡します。エントリを再度読み込んで表示できます。
検証エラーが発生した場合を除いて、これはすべて正常に機能します。その場合、URL から「pinboardEntryId」パラメーターを失い、PortletRequest または応答がないため、CommentValidator でそのパラメーターを読み取って再度応答に渡す方法がありません。
今のところ、ID をセッションに保存し、そこから取得することで、この問題を解決しました。ただし、セッションを使用せずに別の解決策を持っている人がいるかどうかを尋ねたかった. 1つあると確信しています。
ありがとう、
ジュリ
oracle - oc4j コンテナへのデプロイ時に JSF Faces Bridge が java.lang.NullPointerException を取得する
Webcenterで事前構成されたoc4jを使用してJDeveloper 10.1.3.4を実行しています。バニラの JSF Webcenter プロジェクトをポートレット化しようとしています。
- webcenter アプリケーション テンプレートを使用してアプリケーションを作成します。
- JSF JSP を追加します。これは単純に、すべてのデフォルト値を持つインデックスと呼ばれます。
- デプロイメント・プロファイルを追加し、ローカル oc4j にデプロイします
- jsf ページに移動すると、すべてが機能します。
- ViewController を右クリックし、ライブラリ Portlet Faces Bridge を追加します。
- ViewController を右クリックし、Portlet Deployment 記述子を追加します。
リンク テキストの値を使用して portlet.xml を編集します。
portlet.xml で、デフォルトのページ ビューを /index.jspx に置き換えます
ローカル oc4j にデプロイしようとすると、次のようなメッセージが表示されます
---- 展開が開始されました。---- 2009 年 5 月 1 日 2:29:37 PM ターゲット プラットフォームはスタンドアロン OC4J 10g 10.1.3 (localAppServer) です。WAR ファイルを C:\jdevstudio10134\jdev\mywork\test\ViewController\deploy\webapp2.war に書き込みました EAR ファイルを C:\jdevstudio10134\jdev\mywork\test\ViewController\deploy\webapp2.ear に書き込みました 汎用アーカイブ ファイルのバックアップ: /C:/jdevstudio10134/jdev/mywork/test/ViewController/deploy/webapp2_generic.ear WSRP アプリケーションの WSDL を作成しています WSRP アプリケーションの WSDL が作成されました ファイル webapp2.ear をアップロードしています ... ファイル webapp2.ear ... アプリケーションをアップロードしていますwebapp2 STARTS のデプロイヤー。アーカイブを C:\jdevstudio10134\j2ee\home\applications\webapp2.ear にコピーします 初期化 C:\jdevstudio10134\j2ee\home\applications\webapp2.ear を開始します...
デプロイ失敗 デプロイの経過時間: 3 秒
展開が不完全です。#### 2009 年 5 月 1 日午後 2 時 29 分 40 秒
WAR ファイルを手動で展開してページに移動すると、500 内部サーバー エラーが発生します。
09/05/01 14:49:21.984 webapp2: com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346) でのサーブレット エラー java.lang.NullPointerException com.sun.faces.application.ViewHandlerImpl.renderView (ViewHandlerImpl.java:152) at oracle.portlet.server.bridges.jsf.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:73) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) at com. javax.faces.webapp.FacesServlet.service(FacesServlet.java: 214) com.evermind [Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher .java:713) at com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher .java:370) com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server .http.HttpRequestHandler.doProcessRequest(HttpRequestHandler .java:871) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler .java:453) at com.evermind [J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler .java:221) at com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server. http.HttpRequestHandler.run(HttpRequestHandler.java:122) at com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server.http.HttpRequestHandler。run(HttpRequestHandler.java:111) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].util.ReleasableResourcePooledExecutor$ MyWorker.run(ReleasableResourcePooledExecutor .java:303) at java.lang.Thread.run(Thread.java:595)
私のportlet.xmlファイルは次のようになります
...ファイルを削除して jspx ページを再デプロイすると、正常に動作します。
java - 個別のwarファイルに動的にプラグ可能なGWTウィジェット/ポートレットを作成することは可能ですか?
動的にロードしてGWTWebアプリケーションに追加できるウィジェット/ポートレットをGWTで作成することは可能ですか?また、GWTウィジェットを別のwarファイルに配置することはできますか?
私の質問を明確にするために:JSR168 / JSR286準拠のポータルを使用すると、別々のプロジェクト(warファイル)にポートレットを作成し、それらをポータルページに動的にロードできます。GWTアプリケーションで同様のことをしたいとします。したがって、GUIにGWTのみを使用して(JSPなどを使用せずに)ポータルを作成し、純粋なGWTで記述された「ポートレット」を動的に追加するとします。それは可能でしょうか?
IFrameを使用して実行できると想像できますが、そのようなGWTウィジェット/ポートレットが完全にGWTホストの「ポータル」アプリケーションの一部であり、スタイルシートやその他のリソースを共有する方がよいでしょう。
java - Liferay用ポートレット開発の制約・デメリット
Liferay ポータルに統合するために、アプリケーションをポートレットとして開発することを検討しています。Spring フレームワークを使用して通常の Web アプリケーションを開発するのとは対照的に、そのようなアプリケーションを開発する際に重大な欠点や制限はありますか?
Liferay では、すべてのコンテンツをポートレットとして追加する必要があるようです。私が考えているもう 1 つのオプションは、アプリケーションの一部だけに Liferay を使用し、通常の Web アプリケーションとして開発された他の自己開発コンテンツへの外部リンクを追加することです。ただし、これには複数のユーザー認証メカニズムと、Liferay と他の Web アプリケーションとの間のある種のクロスサイト認証が必要になります。
最適な方法はどれですか?
portlet - Liferay-ui:アイコンのローカリゼーション
私は現在、Liferay ポータルのポートレットに取り組んでいます。liferay-ui:icon
多くの異なる言語でのローカリゼーションを既にサポートしている JSP コードの構造を使用しています。ただし、ローカライズされていないように見えるエントリが1つ見つかりました。
他のすべては機能しますが、"add_article"
機能しません。誰か助けてくれませんか?さまざまな言語の「Language.properties」ファイルがどこかにあるはずであり、エントリがあるはずaction.ADD_ARTICLE=<the localized text>
です。誰かがこれを解決する方法を教えてもらえますか?
\編集:
portal-impl.jar で対応する Language.properties ファイルを見つけました。エントリaction.ADD_ARTICLE
はそこにあり、正しくローカライズされていますが、UI ではローカライズされていませんか??
ありがとう