2011-07-20 15 views
0

h:commandButtonアクションがmodalPanelで機能しませんでした。CommandButtonアクションがinsideModalPanelで機能しない

アップロードファイル用のt:inputFileUploadコンポーネントを使用しています。 。ファイルを参照し、アップロード CommandButtonをクリックし、その後、私は内部ModalPanelで選択したファイル名を表示したい後:commandButtonの

私の要件:私のrichModalPanelで1時間を持っています

私の問題は、次のとおりです。 私はBean内のcommandButtonアクションと呼ばれていない、modalPanelにコマンドボタンをクリックし、automattically modalPanelを閉じると。

このアクションメソッドの起動は...ちょうど私が入れたSystem.out.println( "アップロードプロセスを開始する...");この出力さえも私のtomcatログには表示されません。

<body> 

<h:form id="UploadForm" binding="#{FileUpload.intiForm}"> 

    <a4j:outputPanel id="uploadOutputPanel"> 

    <a4j:commandButton value="ShowModalPanel" 
         action="#{FileUpload.showUploadPanelAction}" 
         oncomplete="#{rich:component('uploadImagePanel')}.show()" 
         reRender="uploadImagePanel,uploadOutputPanel"/> 
    </a4j:outputPanel> 
</h:form> 

<rich:modalPanel id="uploadImagePanel" moveable="true" top="150" width="400" autosized="true"> 

    <h:form id="uploadForm" enctype="multipart/form-data" > 

     <h:panelGrid id="uploadPanelGridId" columns="2"> 

      <t:inputFileUpload id="uploadFile" 
           value="#{FileUpload.logoImageFile}" 
           size="54"/> 

      <h:commandButton id="UploadButton" 
          value="Upload" 
          action="#{FileUpload.uploadFileAction}"/> 

      <h:outputText value="Uploaded File Name : #{FileUpload.fileName}"/> 

     </h:panelGrid> 

</h:form> </rich:modalPanel> </body> 

のfaces-config.xmlの

<managed-bean> 
    <managed-bean-name>FileUpload</managed-bean-name> 
    <managed-bean-class>com.jsf.fileupload.FileUpload</managed-bean-class> 
    <managed-bean-scope>session</managed-bean-scope> 
</managed-bean> 

するFileUploadが

import javax.faces.component.html.HtmlForm; 
import org.apache.myfaces.custom.fileupload.UploadedFile; 
public class FileUpload 
{ 

private HtmlForm intiForm; 
private String fileName; 
private UploadedFile logoImageFile; 


public String showUploadPanelAction() 
{ 
    System.out.println("Show Upload Panel Action ....."); //This line showing in tomcat log, when i click "ShowModalPanel" button --> a4j:commandButton 
    return ""; 
} 

public String uploadFileAction() 
{ 
    System.out.println("Uploading process to be start...."); //But this line NOT show in my tomcat log, when i click "UploadButton" --> h:commandButton 
    System.out.println("logoImageFile : " + logoImageFile); 

    if(logoImageFile != null) 
    { 
     fileName = logoImageFile.getName(); 
    } 

    return ""; 
} 

public HtmlForm getIntiForm(){ 
    System.out.println("Page initializing......"); //This line showing in tomcat log, when the page loading time 
    return intiForm; 
} 

public void setIntiForm(HtmlForm intiForm) { 
    this.intiForm = intiForm; 
} 

public UploadedFile getLogoImageFile(){ 
    return logoImageFile; 
} 

public void setLogoImageFile(UploadedFile logoImageFile){ 
    this.logoImageFile = logoImageFile; 
} 

public String getFileName(){ 
    return fileName; 
} 

public void setFileName(String fileName) { 
    this.fileName = fileName; 
} 

}

を.javaファイルが...事前に おかげで私を助けてください。

答えて

0

使用domElementAttachment =「フォーム」モーダルパネル

<rich:modalPanel id="uploadImagePanel" moveable="true" top="150" width="400" autosized="true" domElementAttachment="form"> </rich:modalPanel> 
+0

お返事ありがとうございます...私はdomElementAttachmentを使用しています。しかし、使用しないでください。 UploadButton(commandButton)をクリックすると、uploadFileAction()メソッドが呼び出されません。また、commandButtonをクリックすると、modalPanelが閉じられます。助けてください..事前にお気軽に – jackrobert

0

に他のプリントは、あなたのログに表示されますか?

FileUpload.javaに@Namedまたは@ManagedBeanの注釈を付けましたか?その#{fileUpload.xxx}ではなく、#{FileUpload.xxx}です。

私も、私は彼らが関連しているかはわからないが、使用するとHするとき、私は同様の問題に直面しています

<a4j:commandButton id="UploadButton" 
        value="Upload" 
        action="#{FileUpload.uploadFileAction}" 
        reRender="uploadImagePanel,uploadOutputPanel"> 
+0

お返事ありがとう@Foumpie。今私は自分の投稿を更新する。つまり、faces-config.xmlコードを投稿します。 – jackrobert

+0

ああ、私の悪い。 JEE6アノテーションを使用していると仮定しました。 – Foumpie

0

<h:commandButton id="UploadButton" 
       value="Upload" 
       action="#{FileUpload.uploadFileAction}"/> 

を変更しますのcommandLink内部enctype = "multipart/form-data"を持つフォーム。フォームからこのプロパティを削除すると、そのプロパティが機能します。

関連する問題