HTTP状态500 - 文件:/survey.jsp(16,15)jsp:getProperty用于名为“survey”的bean。以前没有按照JSP.5.3引入名称

时间:2013-07-01 06:25:01

标签: java jsp javabeans

您好我是JSP和JavaBean的新手。我正在练习编写一个应用程序,其中多个页面将共享一个javabean组件。页面“check.jsp”实例化bean并设置属性而没有任何错误。但每当我尝试在另一个jsp survey.jsp中获取属性时,我得到错误

  

HTTP状态500 - 文件:/survey.jsp(16,15)jsp:getProperty用于名为“survey”的bean。以前没有按照JSP.5.3

引入名称

我仔细检查过get和set属性中的名称与action元素中的bean id完全相同。我需要帮助

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>

这是我的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();
        }
    }
}

这里是 survey.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>
        <h1>Survey Summary</h1>
           //ERROR IS HERE
        Java = <jsp:getProperty name="survey" property="javaQuantity" /> <br/> 
        C# = <jsp:getProperty name="survey" property="csQuantity" /> 
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

  

之前没有引入名称

这表明你还没有告诉你关于这个bean的JSP。在让JSP知道bean之前,您直接使用<jsp:getProperty>

您需要使用<jsp:useBean>标记在 survey.jsp 中定义bean。name标记的getProperty属性必须与{ {1}}标记的{1}}属性:

id

但这不起作用,除非您在 check.jsp 文件的请求范围中设置名为useBean的bean,并将该请求发布到 survey.jsp