Primefaces commandButton actionListener dose'nt fire the action....
doree007 Aug 2, 2013 12:34 AMI am creating a simple application to call a method in a bean through p:dialog. But my p:commandButton in p:dialog dosent fire the action in my bean. can anyone help me with this.?
this is my xhtml code and java class for this application..
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:composite="http://java.sun.com/jsf/composite" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:a4j="http://richfaces.org/a4j"> <h:head> <title>Change Properties</title> </h:head> <p:growl id="growl" showDetail="true" life="3000" for="message" /> <div class="body"> <p:dialog header="Change color and Image of Button" widgetVar="dlg" showEffect="explode" hideEffect="bounce"> <h:outputText value="" /> <table style="min-width: 250px; min-height: 0px;"> <tr> <td style="border: none">Color</td> <td style="border: none"><p:colorPicker value="#{fileUploadController.color}" /></td> </tr> <tr> <td style="border: none">Select Background image</td> <td style="border: none"><h:form id="form1"> <p:fileUpload fileUploadListener="#{fileUploadController.upload}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" sizeLimit="100000" description="Select Images" /> </h:form></td> </tr> <tr> <td style="border: none"><p:commandButton value="Close" type="button" onclick="dlg.hide()" /></td> <td style="border: none"> <h:form id="form2"></h:form> <p:commandButton id="change" type="button" value="Change Properties" actionListener="#{fileUploadController.changeProperties}" ajax="false" /> </td> </tr> </table> </p:dialog> <p:dialog header="Change color and Image of Button" widgetVar="dlg1" showEffect="explode" hideEffect="bounce"> <h:form id="form"> <p:fileUpload fileUploadListener="#{fileUploadController.upload}" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" sizeLimit="100000" description="Select Images" /> </h:form> </p:dialog> <p:commandButton value="Show" type="button" onclick="dlg.show()" /> <p:commandButton value="openUpload" type="button" onclick="dlg1.show()" /> <p:outputPanel> </p:outputPanel> </div> </ui:composition>
Hear is my java code for above xhtml page
package com.UploadFile; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.faces.event.ActionEvent; import org.primefaces.event.FileUploadEvent; @ManagedBean(name="fileUploadController") @ViewScoped public class FileUploadController { private String destination = "D:\\tmp\\"; public String messages; public String color; public String backgroundImageFilePath; public String ImgFilename; public void upload(FileUploadEvent event) { FacesMessage msg = new FacesMessage("Success! ", event.getFile() .getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); try { copyFile(event.getFile().getFileName(), event.getFile() .getInputstream()); } catch (IOException e) { e.printStackTrace(); } } public void copyFile(String fileName, InputStream in) { try { OutputStream out = new FileOutputStream(new File(destination + fileName)); this.ImgFilename=fileName; int read = 0; byte[] bytes = new byte[1024]; while ((read = in.read(bytes)) != -1) { out.write(bytes, 0, read); } in.close(); out.flush(); out.close(); System.out.println("New file created!"); } catch (IOException e) { System.out.println(e.getMessage()); } } public void changeProperties(ActionEvent actionEvent) { System.out.println("Change properties occures"); } public String getImgFilename() { return ImgFilename; } public void setImgFilename(String imgFilename) { ImgFilename = imgFilename; } public String getBackgroundImageFilePath() { return backgroundImageFilePath; } public void setBackgroundImageFilePath(String backgroundImageFilePath) { this.backgroundImageFilePath = backgroundImageFilePath; } public String getMessages(ActionEvent e) { return messages; } public void setMessages(String messages) { this.messages = messages; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } }
jboss 7.1
primefaces 3.4
jsf 2.0