繁体   English   中英

JSP Hello页面错误

[英]JSP Hello Page Error

我是JSP的初学者,正在尝试做简单的jsp页面。 ı要设置我的班级字段名称和姓氏并在页面上打印。 我的课 :

package org.mypackage.person;

/**
 *
 * @author cemalinanc
 */
public class Person {

    private String name;
    private String surname;

    Person()
    {
        name = null;
        surname = null;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the surname
     */
    public String getSurname() {
        return surname;
    }

    /**
     * @param surname the surname to set
     */
    public void setSurname(String surname) {
        this.surname = surname;
    }

}

和我的index.jsp像:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>Hello World!</h1>
        <form name="input form" action="response.jsp">
            Name:
            <input type="text" name="name" value="" /> 
            Surname:
            <input type="text" name="surname" value="" />
            <input type="submit" value="Ok" />
        </form>
    </body>
</html>

我的response.jsp页面是这样的:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <jsp:useBean id="mybean" scope="session" class="org.mypackage.person.Person" />
        <jsp:setProperty name="mybean" property="name" />
        <h1>Hello,     <jsp:getProperty name="mybean" property="name" />!</h1>
    </body>
</html>

我只想在班级中设置两个字段并打印以筛选两个字段,但我做不到。 后来我尝试仅打印名称字段,但再次无法打印。 我遇到一个类似的错误:

服务器遇到内部错误(),导致服务器无法满足此请求。 org.apache.jasper.JasperException:/response.jsp(行:15,列:8)useBean类属性org.mypackage.person.Person的值无效。

这是什么问题?

如果您能给我一个主意,我将不胜感激。 非常感谢您的帮助。

删除您的Person()构造函数。

由于未使用“ public”声明,因此默认范围是“ package scope”而不是“ public”。 根据http://java.sun.com/products/jsp/tags/syntaxref.fm14.html ,“该类不能是抽象的,并且必须具有公共的,无参数的构造函数”。

我建议只删除构造函数,因为它什么也没做。 默认情况下,您的namesurname实例变量将已经初始化为null-只要没有声明其他构造函数,就会自动为您自动创建一个默认的,公共的,无参数的构造函数。

(我还建议从您的bean类中删除Javadoc注释。Javadocs(或任何其他文档)应该是有意义的,并且诸如“返回名称”之类的信息不会告诉我们我们尚不知道的任何内容。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM