org.apache.jasper.JasperException: не удается найти какую-либо информацию о свойстве 'sName' в бине типа 'AddUserBean' - PullRequest
2 голосов
/ 12 июля 2010

У меня есть HTML-страница с формой регистрации пользователя. Я собираю данные и действие:

<form name="register" action="../JSP/Register.jsp" method="post">

Тогда на странице JSP у меня есть

<HTML>
<HEAD>
<TITLE>Reg JSP</TITLE>

    <LINK REL="stylesheet" TYPE="text/css" HREF="commonstyle.css">
</HEAD>
<BODY>
<jsp:useBean id ="user" class ="Data.AddUserBean" />
<jsp:setProperty name ="user" property="*" />

<H1>
    Customer Name :    <jsp:getProperty name = "user" property = "sName" /><br>
    Age :<jsp:getProperty name = "user" property = "iAge" /><br>
    Email:<jsp:getProperty name = "user" property = "sEmail" /><br>

</H1>

Компонент находится в данных пакета; Это Java-класс, имеющий методы get и set для этих трех свойств sName, iAge и sEmail.

Когда я пытаюсь выполнить код, выдается ошибка:

HTTP-статус 500 -


тип Отчет об исключении

сообщение

описание Сервер обнаружил внутренняя ошибка (), которая помешала от выполнения этого запроса.

исключение

org.apache.jasper.JasperException: Не могу найти информацию о свойство sName в бине типа 'Data.AddUserBean'

Я использую Tomcat 6 и Eclipse IDE.

Любые предложения ???

Ответы [ 5 ]

2 голосов
/ 13 июля 2010

Избавьтесь от Венгерской нотации , это не имеет смысла в языке OO, таком как Java, и делает ненужные вещи сложными в Javabeans и EL.Также избавьтесь от заглавных символов в именах пакетов, это запрещено согласно Java Naming Conventions .

package data;

public class AddUserBean { 
    private String name;
    private int age;
    private String email;

    public String getName() { return name; }
    public int getAge() { return age; }
    public String getEmail() { return email; }

    public void setName(String name) { this.name = name; }
    public void setAge(int age) { this.age = age; }
    public void setEmail(String email) { this.email = email; }
}

и переписайте JSP следующим образом (заглавные HTML-элементы тоже 90-х, вы уверены, что читаете современные учебники / книги?):

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Reg JSP</title>
        <link rel="stylesheet" type="text/css" href="commonstyle.css">
    </head>
    <body>
        <jsp:useBean id="user" class="data.AddUserBean" />
        <jsp:setProperty name ="user" property="*" />
        <h1>
            Customer Name: ${user.name}<br>
            Age: ${user.age}<br>
            Email: ${user.email}<br>
        </h1>
    </body>
</html>

Здесь, Язык выражений (EL, те * 1015)* вещи) предоставляет вам легкий мгновенный доступ к javabeans в любом объеме.jsp:getProperty полезен только тогда, когда нет поддержки EL (или JSTL), но тогда мы говорим о времени, предшествовавшем десятилетию назад.Конечно, используемый сервлет-контейнер поддерживает EL.

См. Также:

0 голосов
/ 11 июля 2014

Просто назовите переменные, как предложено в Соглашении об именах JAVA, то есть в маленькой букве. напр .: частное имя строки;

Имя приватной строки; -----------> выбросит исключение.

0 голосов
/ 10 июля 2012

org.apache.jasper.JasperException: Не удается найти информацию о свойстве 'sName' в компоненте типа 'AddUserBean'

Это страница не может получить мой файл Java-бина?

Нет, это больше похоже на проблему с вашими JSP. Имена свойств бина начинать со строчных букв (если вы не сделать это иначе). Это потенциально сбивает с толку, что начальный строчные буквы по соглашению отображаются заглавными буквами в методах получения и установки имена; например, getEmpName() и setEmpName(String) будет геттер и сеттер для свойства empName.

Если бы Джаспер не смог найти класс бобов, он бы так и сказал; если оно заходит так далеко, чтобы проверить наличие определенного свойства, то уже изучил класс бобов.

0 голосов
/ 13 июля 2010

попробуй

<jsp:getProperty name = "user" property = "SEmail" />

Однако я бы посоветовал использовать просто email, а не sEmail.

0 голосов
/ 12 июля 2010

Если у вашего AddUserBean класса есть свойства Name, Age и Email, то почему вы спрашиваете его о sName, iAge и sEmail? Это противоречиво.

...