Navigation to call action for bean class

Posted by Muthu on Stack Overflow See other posts from Stack Overflow or by Muthu
Published on 2011-11-17T14:58:29Z Indexed on 2011/11/18 9:51 UTC
Read the original article Hit count: 363

Filed under:
|
|

I am using JSF 2.0 and PrimeFaces 3.0. I have uploaded the images and have to crop the image. The images are uploaded and successfully displayed in the upload pages.

When I select the images and click the crop button the corresponding crop bean is not called. If I don't select the image and click the crop button the corresponding crop bean class is called but a NullPointerException occurred. What is the problem?

The Facelet view is:

<h:form>
  <p:panel header="FILE UPLOAD WITH CROPPER" style="width:900px; margin: 0 auto; margin-top:0px">
    <p:fileUpload fileUploadListener="#{photoUploadAction.handleImageUpload}"  
      mode="advanced"   
      update="getImageId,messages" auto="false" 
      allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>  

    <p:growl id="messages" showDetail="true"/>
    <p:growl id="uploadMessages" showSummary="true" showDetail="true"/>

    <h:panelGrid columns="2" >
      <p:imageCropper value="#{photoUploadAction.croppedImage}" id="getImageId"
        image="images/#{photoUploadVO.imageName}"/>
    </h:panelGrid>

    <p:commandButton value="Crop" update="getImageId" action="#{imageCropperBean.crop}" />
  </p:panel>
</h:form>

BACKING BEAN for ImageCropper:

@ManagedBean(name="imageCrop")
@RequestScoped

public class ImageCropperBean {

    private CroppedImage croppedImage;
    private String newFileName;
    private String imageName;


    public String getImageName() {
        return imageName;
    }

    public void setImageName(String imageName) {
        System.out.println("TEH IMAGE NAME ===="+imageName);
        this.imageName = imageName;
    }

    public String getNewFileName() {
        return newFileName;
    }

    public void setNewFileName(String newFileName) {
        System.out.println("AAAAAAAAAAAAAA"+this.newFileName);
        this.newFileName = newFileName;
    }

    public CroppedImage getCroppedImage() {
            return croppedImage;
    }

    public void setCroppedImage(CroppedImage croppedImage) {
        System.out.println("cRRRRRRRRRRRRR"+croppedImage);
            this.croppedImage = croppedImage;
    }

    public ImageCropperBean(){

    }

    public String crop() {
        System.out.println("WELCOMEMMMMMMMMMMMMMM");


        FacesContext context = FacesContext.getCurrentInstance();
        ImageCropperBean imageCropperBean = (ImageCropperBean) context.getApplication().evaluateExpressionGet(context, "#{imageCropperBean}", ImageCropperBean.class);

            ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();

             newFileName = servletContext.getRealPath("") + File.separator + "cropImage"  + File.separator+ "croppedImage.jpg";

             System.out.println("FILE NAME NAME NAME NAME "+newFileName);

            String file = new File(newFileName).getName();
            System.out.println("DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"+file);



             imageCropperBean.setImageName(file);
             File fileFolder = new File("e:/Mecherie_project/image_web/WebContent/cropImages",file);


            System.out.println("FILE ANE"+file);

           // String target=null;

            FileImageOutputStream imageOutput;
            try {
                    imageOutput = new FileImageOutputStream(fileFolder);
                    System.out.println("HHHHHHHHHH=="+imageOutput);
                    imageOutput.write(croppedImage.getBytes(), 0, croppedImage.getBytes().length);
                    imageOutput.close();

                    FacesMessage msg = new FacesMessage("Succesful", file
                            + " is cropped.");

                    FacesContext.getCurrentInstance().addMessage(null, msg);


            } catch (FileNotFoundException e) {

                FacesMessage error = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                        "The files were not Cropped!", "");
                FacesContext.getCurrentInstance().addMessage(null, error);
                e.printStackTrace();

            } catch (IOException e) {
                    e.printStackTrace();

                    FacesMessage error = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                            "The files were not Cropped!", "");
                    FacesContext.getCurrentInstance().addMessage(null, error);
            }

          //  System.out.println("ghfhgfghgh"+target);
            return "success";


            }
}

© Stack Overflow or respective owner

Related posts about jsf

Related posts about jsf-2.0