2011-11-07 1 views
0

Eclipse IDE에서 jsf2.0 with tomcat7을 사용하고있다. 이미지를 자르고 거기서 양식을 제출할 때 이미지 자르기 만했다. 내 code.i에 오류가 어디에 내가 구조체인지 모르겠다.나는 javax.faces.el.EvaluationException에 직면 해있다 : java.lang.NullPointerException

내보기 페이지는 다음과 같습니다

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.prime.com.tr/ui"> 
<h:head> 
<script src="jquery-1.4.2.js"></script> 
<script src="jquery.Jcrop.js"></script> 
<script src="jquery.min.js"></script> 
<script src="jquery.Jcrop.min.js"></script> 

</h:head> 
<h:body> 
<h:form> 
<h:panelGrid columns="2"> 
    <p:imageCropper value="#{imageCropperBean.croppedImage}" 
       image="/detroit-nights.jpg"      /> 
    <p:graphicImage id="localCroppedImage" 
       value="#{imageCropperBean.newFileName}.jpg" /> 

</h:panelGrid> 

<p:commandButton value="Crop" 
     update="localCroppedImage" action="#{imageCrop.crop}" 
      /> 


</h:form> 
</h:body> 
</html> 

후원 콩은 다음과 같습니다

package bean; 



import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.IOException; 

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.RequestScoped; 
import javax.faces.context.FacesContext; 
import javax.imageio.stream.FileImageOutputStream; 
import javax.servlet.ServletContext; 

import org.primefaces.model.CroppedImage; 

@ManagedBean (name ="imageCrop") 
@RequestScoped 
public class ImageCropperBean { 

    private CroppedImage croppedImage; 
    private String newFileName; 


    public String getNewFileName() { 
     return newFileName; 
    } 

    public void setNewFileName(String newFileName) { 
     this.newFileName = newFileName; 
    } 

    public CroppedImage getCroppedImage() { 
      return croppedImage; 
    } 

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

    public String crop() { 
     System.out.println("WELCOMEMMMMMMMMMMMMMM"); 
      ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext(); 
      newFileName = servletContext.getRealPath("") + File.separator +"croppedImage.jpg"; 
      System.out.println("FILE ANE"+newFileName); 

      FileImageOutputStream imageOutput; 
      try { 
        //File file = new File(newFileName); 
        imageOutput = new FileImageOutputStream(new File(newFileName)); 
        System.out.println("HHHHHHHHHH=="+imageOutput); 
        imageOutput.write(croppedImage.getBytes(), 0, croppedImage.getBytes().length); 
        imageOutput.close(); 
      } catch (FileNotFoundException e) { 
       System.out.println("NOT FOUND EXCEPTION"+e); 
        e.printStackTrace(); 
      } catch (IOException e) { 
       System.out.println("IOEXCEPTION"+e); 
        e.printStackTrace(); 
      } 
      //return newFileName; 
      return null; 


      } 
} 

은 web.xml은 다음과 같습니다 관리 빈에

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee /web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
<context-param> 
<description>Context param for JSTL 1.2 to work in Tomcat 6 sun RI 
</description> 
<param-name>com.sun.faces.expressionFactory</param-name> 
<param-value>com.sun.el.ExpressionFactoryImpl</param-value> 
</context-param> 
<context-param> 
<description>Parameter required by Mojarra 2.0</description> 
<param-name>com.sun.faces.allowTextChildren</param-name> 
<param-value>true</param-value> 
</context-param> 
<context-param> 
<param-name>javax.faces.VALIDATE_EMPTY_FIELDS</param-name> 
<param-value>true</param-value> 
</context-param> 
<servlet> 
<servlet-name>Resource Servlet</servlet-name> 
<servlet-class> 
    org.primefaces.resource.ResourceServlet 
</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Resource Servlet</servlet-name> 
<url-pattern>/primefaces_resource/*</url-pattern> 
</servlet-mapping> 
<context-param> 
<param-name>javax.faces.PROJECT_STAGE</param-name> 
<param-value>Development</param-value> 
</context-param> 
<context-param> 
<param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
<param-value>server</param-value> 
</context-param> 
<filter> 
<filter-name>PrimeFaces FileUpload Filter</filter-name> 
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> 
<init-param> 
    <param-name>thresholdSize</param-name> 
    <param-value>2097152</param-value> 
</init-param> 
<init-param> 
    <param-name>uploadDirectory</param-name> 
    <param-value>/temp</param-value> 
</init-param> 
</filter> 
<filter-mapping> 
<filter-name>PrimeFaces FileUpload Filter</filter-name> 
<servlet-name>Faces Servlet</servlet-name> 
</filter-mapping> 
<servlet> 
<servlet-name>Faces Servlet</servlet-name> 
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>*.jsf</url-pattern> 
</servlet-mapping> 
<session-config> 
<session-timeout>30</session-timeout> 
</session-config> 
<welcome-file-list> 
<welcome-file>image.xhtml</welcome-file> 
</welcome-file-list> 

</web-app> 

답변

1

귀하의 참조가 잘못되었습니다. 을 속성에 쓰여진대로 @ManagedBean 주석으로 사용하십시오.

그래서 대체 :

<p:imageCropper value="#{imageCropperBean.croppedImage}" 
       image="/detroit-nights.jpg"      /> 
<p:graphicImage id="localCroppedImage" 
       value="#{imageCropperBean.newFileName}.jpg" /> 

<p:imageCropper value="#{imageCrop.croppedImage}" 
       image="/detroit-nights.jpg"      /> 
<p:graphicImage id="localCroppedImage" 
       value="#{imageCrop.newFileName}.jpg" /> 

와 (당신은 p:commandButton 올바르게 그것을했다).

+0

안녕하세요 저는 생각으로 바뀌었지만 자르기 이미지는 매트

Muthu

+0

@Muthu. 불행히도 Primeface의 ImageCropper 모듈에 대한 특별한 경험이 없습니다. Firebug 또는 Chrome 개발자 도구를 사용하여 클라이언트 오류 (예 : 이미지 404)를 확인하거나 서버 로그에서 오류를 확인하십시오. –