:あなたが見ることができるようにポートレット:アクションまたは直接レンダリングフェーズに送信するフォーム?以下のフォームを考えてみましょう(春3.1を使用しています)ポートレット・プロジェクトで
<portlet:actionURL var="actionUrl" />
<portlet:renderURL var="renderUrl" />
<form action="${actionUrl}" method="POST">
<!-- A number of checkboxes -->
With selected do:
<button type="submit" name="stuff" value="action">Action</button>
<button type="submit" name="stuff" value="render" onclick="jQuery(this).closest('form').prop('action', ${fn:escapeXml(json:json_encode(renderUrl))})">Render</button>
</form>
は、送信ボタンを2つとフォームがあります。押されたボタンに応じて、私はアクションフェーズに行くか、アクションフェーズをスキップして直接レンダリングフェーズに行きたいと思っています。
上記のコードは機能し、私が望む効果がありますが、それほど美しくありません。これは、javascriptを使用してフォームのアクション属性を交換する、ハックのようなものです。
このサーバー側でJSR-286に準拠した方法がありますか?私が目指したアイデアの1つは、レンダリングフェーズ(ModelAndViewオブジェクトをまとめて)をアクションフェーズで行い、ModelAndViewをセッションに格納し、セッションからレンダリングメソッドでポップして戻すことでした。しかし、それはまだ非難のようなハックのように感じる。そのためのすべてのかなりの解決策?