JSTL e JavaBeans

1 resposta
Baldao

Olá a todos... alguém poderia me explicar porque essa página jsp não funciona?

Tenho um bean

package musicas;

import java.util.Set;

public class Artista {

    private Long id;
    private String nome;
    private String genero;

    private Set musicas;
    
    public Artista() {}
    
    public Long getId() {
        return this.id;
    }
    
    private void setId(Long id) {
        this.id = id;
    }
   
   // gets e sets 
   ...
    
}

Tenho uma página JSP

<%@page contentType="text/html"%>
<%@page pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

<c:if test="${not(param.id > 0)}">
    <c:redirect url="index.jsp" />
</c:if>

<jsp:useBean id="artista" class="musicas.Artista" scope="page" />
<jsp:setProperty name="artista" property="id" value="${param.id}" />

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
<title>JSP Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>

<body>

<h1>Músicas de </h1>
    
</body>

</html>

E tenho essa maldita exceção:

org.apache.jasper.JasperException: Can't find a method to write property 'id' of type 'java.lang.Long' in a bean of type 'musicas.Artista'
	org.apache.jasper.runtime.JspRuntimeLibrary.handleSetPropertyExpression(JspRuntimeLibrary.java:653)
	org.apache.jsp.lista_005fmusicas_jsp._jspService(lista_005fmusicas_jsp.java:72)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)

Se alguém puder ajudar, eu agradeço. :?

1 Resposta

Baldao

Opa… entendi o erro. O problema é que o atributo id da classe Artista é do tipo Long e o que é passado na página jsp é String.
Agora a dúvida é outra… como é que eu faço um type cast com jstl?

Criado 4 de maio de 2007
Ultima resposta 4 de mai. de 2007
Respostas 1
Participantes 1