2012-01-31 3 views
0

Я не могу решить эту проблему, вы можете мне помочь.Исключение при использовании JavaBean в JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 

<jsp:useBean id="musteri" class="beanler.MusteriBean" scope="request" ></jsp:useBean> 

<%musteri.setIsim("Ferid");%> 
<%=musteri.getIsim() %> 
</body> 
</html> 

ИСКЛЮЧЕНИЯ: СИЛЬНАЯ: Servlet.service() для сервлета [Jsp] в контексте с путем [/ Servlet_Projesi] бросил исключение [/beanTest.jsp (строка 11, столбец : 0) значение для атрибута класса useBean beanler.MusteriBean недействителен.] с основной причиной org.apache.jasper.JasperException: /beanTest.jsp (строка: 11, столбец: 0) Значение атрибута класса useBean beanler.MusteriBean недействительный.

package beanler; 

public class MusteriBean { 
    private String isim; 
    private String soyad; 

    public String getIsim() { 
     return isim; 
    } 
    public void setIsim(String isim) { 
     this.isim = isim; 
    } 
    public String getSoyad() { 
     return soyad; 
    } 
    public void setSoyad(String soyad) { 
     this.soyad = soyad; 
    } 
} 

enter image description here

ответ

1

попытка установить свойство с помощью <jsp:setProperty>

<jsp:useBean id="musteri" class="beanler.MusteriBean" scope="request" > 
<jsp:setProperty name="musteri" property="isim" value=" Ferid" /> 
</jsp:useBean> 

при отображении вы можете использовать <%=musteri.getIsim() %>

+0

Thanxs Рамеш это работает! –

+0

приветствуется ... –

1

Две точки вы можете дать попробовать.

[1] Инициализировать свои свойства класса как

private String isim = null; 
private String soyad = null; 

[2] [Не обязательно осуществлять] Сериализуемый как

public class MusteriBean implements java.io.Serializable

+0

Спасибо @RaviG, что есть работа. Но можете ли вы объяснить, почему мы это сделали? –

+1

Это не то, что заставило его работать. Я предполагаю, что смена исходного кода вызвала перекомпиляцию в Eclipse, которая вызвала повторное развертывание на сервере, что сделало класс доступным для JSP. Ваш код был в порядке с самого начала (кроме скриптлетов больше не нужно использовать больше 10 лет). Значение по умолчанию для не-примитивного поля равно null. Инициализация их до нуля просто добавляет шум. –

+0

@JB Nizet No. Когда вы инициализируете bean-компонент, он ожидает, что свойства класса будут инициализированы. –

1

Я также нашел другое решение.

<jsp:useBean id="musteri" class="beanler.MusteriBean" scope="request" ></jsp:useBean> 

Я изменил его:

<jsp:useBean id="musteri" class="beanler.MusteriBean" scope="request" /> 

и что работает ..

Смежные вопросы