Javabeans - tag <jsp:useBean> e <jsp:SetProperty>, como setar valores que sao objetos?

Olá,

Resumo da pergunta: como passar um objeto em um setter via tag jsp:setProperty , por exemplo: setTipo(Tipo t), quero passar uma instancia de tipo pela tag.

Quero usar minha classe AlunoDAO no JSP para listar:

public class AlunoDAO {
    
    private Session session;

    public AlunoDAO() {
    }

    public void setSession(Session session) {
        this.session = session;
    }

    public List<Aluno> listar(){
        return session.createCriteria(Aluno.class).list();
    }
}

[code]<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<jsp:useBean id=“dao” class=“br.com.caelum.dao.AlunoDAO”>
<jsp:setProperty name=“dao” property=“session” param=“Session” value="<%= HibernateFactory.getInstance() %>" />
</jsp:useBean>

<c:forEach var="aluno" items="${dao.listar}">
    <li>
        <c:out value="${aluno}"/>
    </li>
</c:forEach>

[/code]

O problema está nessa linha, não deve ser assim que se faz, já tentei também com ${ } e nada.

<jsp:setProperty name="dao" property="session"  value="<%= HibernateFactory.getInstance() %>" />  

Para eu criar o objeto DAO, que faz a consulta dos alunos, eu preciso de uma sessao, cujo o método estático getInstance() me retorna. Mas comoeu faço pra setar essa instância pro objeto? (Isso é chamar o setSession() )
Eu só consigo setar String ou número.

Essas tags de javabeans não foram feitas pra isso?