我问这个问题,我打算回答其他人要学习的问题.它非常简单直接.我希望它有所帮助.
就是这个
使用blob字段为示例客户创建实体
@Entity
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Lob
private byte[] logo;
//setter and getter required
Run Code Online (Sandbox Code Playgroud)
例如,创建会话Bean以帮助与实体通信
@Stateless
public class CustomerService {
@PersistenceContext(unitName = "ImageTestPU")
private EntityManager em;
public void persist(Object object) {
em.persist(object);
}
public List<Customer> customerList(){
return em.createNamedQuery(stat).getResultList();
}
public byte[] loadImage(int id){
return em.find(Customer.class, id).getLogo();
}
}
Run Code Online (Sandbox Code Playgroud)
创建您的managedBean.注意 private UploadedFile uploadedFile;
它的来自
org.apache.myfaces.custom.fileupload.UploadedFile; 我将在稍后解释.
public class CustomerManager {
@EJB
private CustomerService …
Run Code Online (Sandbox Code Playgroud) 我知道managedBean有问题,但我无法弄清楚它是什么
当我departmentManagedBean.department.faculty.facultyName
从jsf页面尝试时,它给出一个如下的空指针:
javax.el.PropertyNotFoundException:/administrator/department/DepartmentRegistration.xhtml @ 30,260 value ="#{departmentRequestBean.department.faculty.facultyName}":目标无法访问,'null'返回null
javax.el.PropertyNotFoundException: /administrator/department/DepartmentRegistration.xhtml @30,260 value="#{departmentRequestBean.department.faculty.facultyName}": Target Unreachable, 'null' returned null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.richfaces.component.util.InputUtils.findConverter(InputUtils.java:123)
at org.richfaces.component.util.InputUtils$1.getConverterByProperty(InputUtils.java:56)
at org.richfaces.component.util.InputUtils.getConvertedValue(InputUtils.java:148)
at org.richfaces.component.util.InputUtils.getConvertedValue(InputUtils.java:137)
at org.richfaces.renderkit.InputRendererBase.getConvertedValue(InputRendererBase.java:50)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
at javax.faces.component.UIInput.validate(UIInput.java:960)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849) …
Run Code Online (Sandbox Code Playgroud)