やでpropagation="default"を指定した場合の意味
ドキュメントを見ても
<s:link view="/#{empty from ? 'Course' : from}.xhtml" value="#{empty from ? 'View' : 'Select'}" propagation="#{empty from ? 'none' : 'default'}" id="courseViewId"> <f:param name="courseId" value="#{_course.id}"/> </s:link>
propagation='default'で生成される箇所があります。これが何なのかいろいろ調べたのですが、Web上ではそれらしい情報が見つかりませんでした。最初何かの新機能なのかと思いましたが、結局ソースコードを読んでみたところ、defaultという属性値はpropagation属性を指定しなかった場合と同等として扱われるデフォルト値に過ぎないことがわかりました。
また、UISeamCommandBaseクラスの80行目で以下のように実装されています。
if ("default".equals(getPropagation()) || "join".equals(getPropagation()) || "nest".equals(getPropagation()) || "end".equals(getPropagation())) { UIConversationId uiConversationId = UIConversationId.newInstance(); uiConversationId.setViewId(viewId); url.addParameter(uiConversationId); } if ("join".equals(getPropagation()) || "nest".equals(getPropagation()) || "begin".equals(getPropagation()) || "end".equals(getPropagation())) { UIConversationPropagation uiPropagation = UIConversationPropagation.newInstance(); uiPropagation.setType(getPropagation()); uiPropagation.setPageflow(getPageflow()); url.addParameter(uiPropagation); }
つまり、defaultの場合は単にcidのみパラメーター付加するが、beginやendなどのように会話の開始や終了などの操作をしないということのようです。結局
http://seamframework.org/Community/SlinkAndPropagation