問題タブ [spring-portlet-mvc]
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.
spring - Liferay 6.1 + Spring MVC Portlet 4.0: わかりやすい URL マッピング
Liferay 6.1 内の Spring MVC ポートレットに対してフレンドリーな URL マッピングを機能させようとしていますが、失敗します。
への私の追加は、liferay-portlet-xml
利用可能なマニュアルとブログの例によるもので、次のとおりです。
friendly-url-routes.xml
存在とともに
私のSpring MVCコントローラーは次のようになります
/baseurl/-/search/bar
レンダリング フェーズの出力のみを使用してポートレットを呼び出した場合、アクション メソッドは呼び出されません。
を使用してこのページへのリンクを作成した場合
Liferay が生成する URL は のようになり/baseurl/-/search/bar?p_auth=sometoken&p_p_lifecycle=1
ます。アクション フェーズを正しく実行し、その URL を直接呼び出すこともできます。ただし、削除したいパラメータp_auth
とパラメータが含まれています。p_p_lifecycle
どんな提案でも大歓迎です。
java - Spring コントローラーの前処理 @ModelAttribute リクエスト パラメーター
私の Spring 4 駆動型ポートレットには、日付フィールドを含むデータ オブジェクトがあります。JSP ビューには、日付 (dd/mm/yyyy) と時刻 (hh/mm) という 2 つの個別のフィールドがあります。コントローラーのアクション ハンドラーは、@ModelAttribute
-annotation を使用してフォーム データを受け取ります。
利用可能な日付全体に対してフィールドが1つしかないため、フォームデータが検証されてonUpdate()
受信される前に、日付と時刻をマージする必要があります。myObject
MyObject
java.util.Calendar
この必要性を回避するためのアイデア 1
MyObject
ここで、日付を の 2 つの個別のフィールドに分割し、必要に応じて値をマージするゲッターを提供することもできると考えました。
しかし、これはいくつかの理由で良い考えではないと思います (この質問を参照してください: Hibernate Annotations - which is better, field or property access? ) モデルオブジェクトをデータベースレコードのミラーにしたいので、そうする必要があります割り当てられる前に検証されます。
アイデア2
myObject
別のアプローチは、日付または時刻を設定するときに、オンデマンドでカレンダー オブジェクトを作成または変更することです。
ここでの問題は、フィールド「日付」または「時刻」の 1 つだけが有効な場合に、新しいカレンダー オブジェクトが作成されることです。ビューのフィールドには、現在の日付または現在の時刻が入力されます (どちらの値が正しかったかによって異なります)。
isValidDate
モデルに別のプライベート フラグを追加することで、この問題を解決することもできます。しかし、これは不潔な解決策だと思います。
結論
myObject
コントローラー用とmyObject
実際のモデルオブジェクトとしては大きな違いがあると思います。myObject
検証されて「マッピング」されるとすぐに、モデルオブジェクトになる必要があります。
だからここに私の質問:
@ModelAttribute
最後のポイントは、一般的に悪い考えとして使用することを明らかにしていると思いますか?- または、インスタンスが作成される前にフォームデータをマッピングして検証する方法はあり
MyObject
ますか? - そうでない場合、どのように問題を解決することをお勧めしますか?
spring-mvc - フォームに追加するパス:select spring mvc ポートレット
私のプロジェクトは、Spring MVC を使用したポートレットです。コードを即興化したいので、<form:select>
代わりに<select>
. 使用するにはどのような変更が必要か知りたいです。選択した値をコントローラーに返す必要があります。
jsp:
モデルクラス:
コントローラ:
java - Liferay : 1 つの liferay プラグイン プロジェクトで複数の Spring MVC ポートレットを構成する
liferay で Spring MVC ベースのポートレットを開発しています。基本的に、1 つの liferay プロジェクト自体で 2 つまたは 3 つのポートレットを構成および維持したいと考えています。同じために必要な構成を案内してくれる人もいます。portlet.xml、Spring 構成、および Web 構成 (必要な場合) の構成コードと同様です。すべてのポートレットのデフォルト コントローラーを個別に構成して、それぞれが異なるランディング ページに表示されるようにするだけです。
これらのポートレットを構成する方法を知っている人はいますか? どんな提案も役に立ちます:D
前もって感謝します。
liferay - Liferay ポートレットから OG メタタグを変更する
リクエスト パラメータに基づいて OG メタタグを変更したい。Liferay 6.0.6 と Spring Portlet MVC 3.1.2 を使用しています。
ユーザーが URL にアクセスした場合example.com?param=value1
、次のように設定します。
ユーザーが に来たらexample.com?param=value2
、次のように設定します。
Liferay は、 を通じてタイトル、サブタイトル、説明、およびキーワードを設定できますPortalUtil
。これらの OG メタタグを何らかの形で同様に設定できますか?
portlet - Spring ポートレット - ブラウザーの [戻る] ボタンが機能しない
ブラウザの戻るをクリックすると、コントロールはどこにも行きません
戻るボタンの後にこのリンクで提案されているように 、ポートレットはプロセスアクションに入りません
Portlet.xml に wps.multiple.action.execution=true を追加しましたが、まだ URL がキャッシュされており、新しい URL を発行していません。JSR 168 仕様の IBM Portal サーバー 6.1 を使用しています。
私の Portlet.xml は以下のようになります。
ブラウザーのクリックで Spring インターセプターを呼び出して、リクエストをインターセプトしようとしています。コントロールはどこにも行きません。インターセプターにヒットしていません。私のSpringインターセプターは以下です:
}