【问题标题】:how output display in jsp using jstl, servlet使用jstl,servlet如何在jsp中显示输出
【发布时间】:2015-05-20 00:24:06
【问题描述】:

对不起,我的英语。我开始研究javaEE的技术和我有些不清楚的地方。我使用 Maven 和模式 DAO。在数据库中我添加了图像,但我不知道它的图像是如何使用 jstl 和 servlet 从 jsp 输出的。请告诉我如何在jsp中获取图片

对象类发布

public class Posts {

//code

    @Lob
    @Column(name="IMAGE", nullable=false)
    private byte[] image;
}

//code

public void setImage(byte[] image) { this.image = image; }
public byte[] getImge() { return image; }
}

PostDao界面:

public interface PostDao {
//code
public Collection getAllPost();
}

PostDaoImpl

public class PostDaoImpl implements PostDao{
//code
    public Collection getAllPost() { //this method return list object
        Session session = null;
        List posts = new ArrayList<Posts>();
        try{
            session = HibernateUtil.getSessionFactory().openSession();
            posts = session.createCriteria(Posts.class).list();

        } catch(Exception e) { outputError("getAllPost", e); 
        } finally { closeSession(session); }
        return posts;
    }
//code
}

在 servlet indexuser

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        //get session
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();

        try{
            //get collection allpost object
            Collection allpost = Factory.getInstance().getPostDAO().getAllPost();

            request.setAttribute("allpost", allpost);

            request.getRequestDispatcher("/index.jsp").forward(request, response); 
        } catch(Exception e) { 
            System.out.println(e);
        } finally{
            if(session!=null && session.isOpen())
                session.close();
        }
    }

index.jsp 使用 JSTL

<c:forEach var="allpost" items="${allpost}">
        <img src="${allpost.image}" alt="...">
</c:forEach>

错误:

javax.el.PropertyNotFoundException:属性“图像”不可读 键入 app.web.landingpage.object.Posts 在 javax.el.BeanELResolver$BeanProperty.read(BeanELResolver.java:297) 在 javax.el.BeanELResolver$BeanProperty.access$000(BeanELResolver.java:245) 在 javax.el.BeanELResolver.getValue(BeanELResolver.java:85) ......

【问题讨论】:

    标签: java jsp maven servlets jstl


    【解决方案1】:

    您的Posts#getImge 中有错字,应该是Posts#getImage。当您使用 EL 访问类的属性时,它将调用该属性的 get 方法。

    所以改变你的Post如下

    public class Posts {
        @Lob
        @Column(name="IMAGE", nullable=false)
        private byte[] image;
    
        //code
    
        public void setImage(byte[] image) { this.image = image; }
        public byte[] getImage() { return image; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 2013-04-06
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多