2 votes

Statut HTTP 500 - file:/survey.jsp(16,15) jsp:getProperty for bean with name 'survey'. Le nom n'a pas été introduit auparavant, conformément à JSP.5.3.

Bonjour, je suis novice en matière de JSP et de JavaBean. Je m'entraîne en écrivant une application où plusieurs pages partageront un composant JavaBean. La page "check.jsp" instancie le bean et définit une propriété sans aucune erreur. Mais lorsque j'essaie d'obtenir une propriété dans une autre jsp, survey.jsp je reçois le erreur :

Statut HTTP 500 - file:/survey.jsp(16,15) jsp:getProperty for bean with name 'survey'. Le nom n'a pas été introduit auparavant selon la norme JSP.5.3.

J'ai vérifié deux fois que le nom dans les propriétés get et set est exactement le même que l'identifiant de mon haricot dans l'élément action. J'ai besoin d'aide.

CHECK.jsp :

    <%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <jsp:useBean id="survey" scope="application" class="appScope.SurveyBean"/>
        <jsp:setProperty name="survey" property="quantity" value='<%= request.getParameter("title")%>' />

        <form action="/appScope/survey.jsp" method="POST">
            <h3> Thanks for your input</h3>
            <h3> Please check the survey summary status if you want</h3><br/>
            <input type="submit" value="Check Status" />
        </form>
    </body>
</html>

C'est mon javabean : SurveyBean.java :

 package appScope;

    public class SurveyBean {
    private int javaQuantity = 0;
    private int csQuantity = 0;

    public int getJavaQuantity()
    {
        return javaQuantity;
    }

    public int getCsQuantity()
    {
        return csQuantity;
    }

    public void setQuantity(String bookTitle)
    {
        try
        {
            if(bookTitle.equals("java"))
            {
                javaQuantity++;
            }
            if (bookTitle.equals("c"))
            {
                csQuantity++;
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

et voici enquête.jsp où je reçois l'erreur :

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <h1>Survey Summary</h1>
           //ERROR IS HERE
        Java = <jsp:getProperty name="survey" property="javaQuantity" /> <br/> 
        C# = <jsp:getProperty name="survey" property="csQuantity" /> 
    </body>
</html>

0voto

The New Idiot Points 23130

Le nom n'a pas été présenté auparavant

Cela indique que vous n'avez pas encore parlé de ce haricot à votre JSP. Vous utilisez directement le <jsp:getProperty> avant de faire connaître le bean à la JSP.

Vous devez utiliser le <jsp:useBean> pour définir le bean dans le fichier enquête.jsp Le name de l'attribut getProperty doit correspondre à la balise id de l'attribut useBean étiquette :

<jsp:useBean id="survey" class="appScope.SurveyBean" scope="request">

Mais cela ne fonctionnera pas, sauf si vous définissez le haricot nommé survey dans la portée de la demande dans le check.jsp et de poster cette requête à la enquête.jsp .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X