0

doViewポートレット関数からパラメータを送信しようとしていますportal_normal.vm

出来ますか?どうすれば送受信できますか?


申し訳ありませんが、リクエストを通じて行う方法がわかりません。

私が書いたdoViewで

HttpServletRequest httpRequest = PortalUtil.getOriginalServletRequest(PortalUtil.getHttpServletRequest(renderRequest));
        httpRequest.setAttribute("hola", "hola");

そして、私が試した通常のポータルで:

#set ($holas =$request.get('attributes').get('hola'))
#set ($holas2 = $request.getSession().getAttribute("hola"))

$holas
$holas2

しかし、速度のみが表示されます$holas $holas2

4

1 に答える 1

0

これは、ポートレットの外部に情報を表示するための過度に具体的な計画のように思えますが、ポートレットの仕様の範囲外でもあります。出来ますか?はい。制限はありますか?はい。

私は試していませんが、portal_normal.vm評価を開始する前に、すべてのポートレットのすべてのレンダリング フェーズが完了しているという保証はありません。技術的には、実際にレンダリングしようとしてから完成させる必要があります。Render は状態を変更することを許可されていません - そして、あなたのケースではそうなる可能性があることを暗示しています - なぜなら、render では何か他のものが表示されるからです。

テーマには、ページで使用できる何らかの DOM 要素があると仮定する方が理にかなっているかもしれません。次に、この DOM 要素を操作する JavaScript をレンダリングします。テーマへの依存関係は同じですが、DOM 要素が見つからない場合に備えて、デフォルトのレンダリングにフォールバックすることもできます。

または、操作モードを主張する場合。portal_normal.vm から HttpServletRequest にアクセスできるため、サーブレット セッション (ポートレット セッションは役に立たない) を実行しようとする場合があります。ただし、注意してください: HttpServletRequest へのアクセスは非標準であり、実際にはポータルの考え方ではありません

于 2013-07-02T14:20:46.750 に答える