0
根據selectOneMenu的選擇,我想將以下列表dynamicaly中的「title」參數傳遞給另一個jsf Facelet。我的第一種方法如下所示:帶有參數在JSF中傳遞的動態導航
<h:form id="form">
<p:selectOneMenu value="#{exerciseEditorBean.selectedExerciseType}" >
<f:selectItem itemLabel="Multiple Choice Exercise" itemValue="MultipleChoiceExercise" />
<f:selectItem itemLabel="Vocabulary Test" itemValue="VocabularyTest" />
</p:selectOneMenu>
<h:outputText value="Enter Title of your Exercise: " />
<h:inputText id="title" value="#{exerciseEditorBean.exerciseTitle}" />
<h:commandButton value="Next" action="#{exerciseEditorBean.openEditor()}" />
</h:form>
ExerciseEditorBean是ViewScoped。
然後openEditor()函數根據selectedExerciseType屬性決定下一個要顯示的Facelet並返回類似「multipleChoiceEditor.xhtml」的內容。 我該如何將titel屬性傳遞給此Facelet?
JSF旨在基於HTTP發佈請求進行導航。這意味着當您導航到頁面時,參數也以這種方式傳遞。我非常不喜歡這個事實,因爲它也不允許書籤。我更喜歡根據帶參數化URL的獲取請求進行導航。 IMO的URL應該看起來像'/ editor/multiplechoice'而不是'/ editor.xhtml'或'/editor.xhtml?type = multiplechoice'。如果你有興趣,可以看看PrettyFaces。 ;-) – siebz0r
@ siebz0r,您可以將使用' '或' '生成的網址標記爲書籤,並且可以方便地在其中任一個上使用'includeViewParams = true'傳遞參數。他們都使用commandXXX組件生成GETs,而不是股票POST。 –
kolossus
請參閱[這個答案](http://stackoverflow.com/questions/4317684/when-should-i-use-houtputlink-instead-of-hcommandlink) – kolossus