kikutaro777さんが書いてるように、PrimeFacesではClient APIを使って結構手軽にJavaScriptからコンポーネントを操作できます。
PrimeFacesのTabViewをJavaScriptで操作する - Challenge Java EE !
ところが、SelectOneRadioはそういう便利APIが用意されていないので、やろうとしたときにちょっとハマります。
たとえば次のようなSelectOneRadioがあるとします。
<p:selectOneRadio id="hoge"> <f:selectItem itemValue="L" itemLabel="左へ行く"/> <f:selectItem itemValue="R" itemLabel="右へ行く"/> </p:selectOneRadio>
そうすると、それぞれのラジオボタンはhoge:0、hoge:1というIDになっているので、これをclickすることになります。
実際には、formのIDなど親コンポーネントのIDも付加されるので、実際のコードはこんな感じになります。
document.getElementById('form:hoge:0').click();
あまり実コードでこのような操作をすることはないと思うのですが、Seleniumなどで自動テストしようとすると絶対に必要になります。
そのときにハマります。というか、ハマりました。
Seleniumじゃなく、JavaFXのWebEngineつかった自作Webテストですけど。