2013-01-16 96 views
1

如何從Primefaces actionlistner調用Spring Webflow轉換?Spring Webflow和primefaces ActionListners

我有一個Primefaces組件SelectOneMenu。每當組件的值發生變化時,我想調用Spring Webflow中的轉換以在outPutText中顯示SelectItem的描述。

我是Spring Webflow和Primefaces的新手。

如果以下錯誤,請讓我知道。

JSF代碼

<h:outputText value="Script " style="font-weight: bold" /> 
    <p:selectOneMenu value="#{selectedDN.cdrScript}" > 
     <p:ajax event="change" listener="scriptChange" update="scriptDesc" /> 
     <f:selectItems value="#{sctiptOptions}" /> 
    </p:selectOneMenu> 
<h:outputText value="#{scriptDesc}" id="scriptDesc" /> 

網絡流量配置爲查看

<view-state id="Edit"> 
<on-entry> 
<evaluate expression="scriptService.getOptions()" 
       result="flowScope.sctiptOptions"/> 
    <set name="flowScope.scriptDesc" value="selectedDN.cdrScript.scriptDesc"/> 
    </on-entry> 
<transition on="scriptChange"> 
    <set name="flowScope.scriptDesc" 
     value="flowScope.selectedDN.cdrScript.scriptName"/> 
    <render fragments="form:scriptDesc" /> 
</transition> 

<transition on="Update" to="Edit"> 
</transition> 

<transition on="Cancel" to="View"> 
</transition> 
</view-state> 

回答

0

你不需要SWF轉換或聽衆這一點。像下面的內容將工作:

<h:outputText value="Script " style="font-weight: bold" /> 
    <p:selectOneMenu value="#{selectedDN.cdrScript}" > 
     <p:ajax event="change" update="scriptDesc" /> 
     <f:selectItems value="#{scriptService.getOptions()}" var="script" itemLabel="#{script.scriptName}" itemValue="#{script.id}"/> 
    </p:selectOneMenu> 
<h:outputText value="#{selectedDN.cdrScript.scriptName}" id="scriptDesc" /> 

如果尚不存在添加「selectedDN」變量定義:

<view-state id="Edit"> 
<on-entry> 
    <set name="flowScope.selectedDN" value="scriptService.getCurrentSelectedDN()"/> 
</on-entry> 

注加itemLabel和項目值屬性。您可能還需要在selectOneMenu上指定的轉換器。

SWF不能很好地與PF局部渲染一起玩。以下內容添加到MVC servlet配置下的標記:

 <webflow:flow-execution-attributes> 
      <webflow:redirect-in-same-state value="false"/> 
     </webflow:flow-execution-attributes> 
+0

非常感謝,我是能夠得到在輸出文本字段中顯示的描述,最主要的是轉換器,如果它是正確實施,一切工作正常。 – user1984471