Tomcat 7 の JSF 2.2、richfaces 4.3.2 で問題に直面しています。私のページは注釈付きViewScoped
です。最初のフォームを表示します。rich:panel
値を変更して特定の値を選択すると、内の要素をajax で表示しa4j:outputPanel
ます。このコンポーネント内a4j:outputPanel
には、フォームを実行する人がいます。たとえば、フィールドが空の場合(または他のもの)、フォームのメッセージエラーを取得したいrich:panel
h:commandButton
しかし、クリックh:commandButton
すると、ビューが再インスタンス化され、@postcontruct
メソッドが再実行されます。ビュースコープで1回だけ実行する必要がありますが、間違っていますか?
ビューを再表示したくありません。内部をクリックしたときに表示さajaxoutputPanel
れたままにしたいです。h:commandButton
h:messages
いくつかのバグについて読みました...たとえば、SessionScopedに渡さずにこの動作を変更する方法はありますか。
ありがとうございます。
<fieldset>
<h:form>
<h:panelGrid columns="3">
<h:outputText value ="Nom de l'étude : "></h:outputText>
<h:inputText id="study_name" value="#{analyse.study_name}" size="20" required="true" label="Nom de l'étude" />
<h:message for="study_name" style="color:red" />
<h:outputText value ="Analyse : "> </h:outputText>
<h:selectOneMenu id = "analyse" value="#{analyse.analyse_type}">
<f:selectItems value="#{analyse.analyse_type2Value}" />
<f:ajax execute="analyse" render=":ajaxOutputPanelAnalyse" />
</h:selectOneMenu>
</h:panelGrid>
</h:form>
</fieldset>
<a4j:outputPanel id="ajaxOutputPanelAnalyse" layout="block" ajaxRendered="true" >
<rich:panel id="richPanelAnalyse" rendered="#{analyse.analyse_type == 'NGS' and request.isUserInRole('ROLE_ADMIN_PROFILER_NGS')}" >
<h:form id ="NGS_form" >
<h:panelGrid columns="4">
<h:outputText value ="Run # :"> </h:outputText>
<h:inputText id="run_number" value="# {analyse.run_number}" size="20" required="true" label="Run" />
<h:message for="run_number" style="color:red" />
<h:outputText></h:outputText>
</h:panelGrid>
<h:commandButton value="Submit" action="#{analyse.addAnalyse}"/>
</h:form>
</rich:panel>
</a4j:outputPanel>
豆で…
@PostConstruct
public void setFlashParam(){
System.out.println("POST CONSTRUCT MON POTE");
FacesContext facesContext = FacesContext.getCurrentInstance();
return;
}
public String addAnalyse(){
System.out.println("Kikou");
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(" - Ajout de l'analyse ?"+" pour le patient ?"+" dans l'étude "+ study_name +" -"));
return "pretty:home";
}