首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >org.apache.jasper.JasperException:无法在“AddUserBean”类型的bean中找到有关属性“sName”的任何信息

org.apache.jasper.JasperException:无法在“AddUserBean”类型的bean中找到有关属性“sName”的任何信息
EN

Stack Overflow用户
提问于 2010-07-12 19:51:14
回答 5查看 8.4K关注 0票数 2

我有一个带有用户注册表格的html页面。我收集的数据和行动是:

代码语言:javascript
代码运行次数:0
运行
复制
<form name="register" action="../JSP/Register.jsp" method="post">

然后在jsp页面上

代码语言:javascript
代码运行次数:0
运行
复制
<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>

bean位于包数据中;这是一个java类,它具有sName、iAge和sEmail这三个属性的get和set方法。

当我试图执行代码时,它会给我带来错误:

HTTP Status 500 -

类型异常报告

消息

服务器遇到一个内部错误(),无法完成此请求。

异常

org.apache.jasper.JasperException:无法在“Data.AddUserBean”类型的bean中找到有关属性“sName”的任何信息

我正在使用Tomcat 6和Eclipse。

有什么建议吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-12 21:06:09

摆脱匈牙利符号,这在像Java这样的面向对象语言中是没有意义的,而且在Javabeans和EL中也会造成不必要的复杂。此外,去掉包名中的大写字符,这是不允许的,因为根据Java命名约定

代码语言:javascript
代码运行次数:0
运行
复制
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年代了,您确定正在阅读最新的教程/书籍吗?):

代码语言:javascript
代码运行次数:0
运行
复制
<!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,那些${} )为您提供了在任何范围内对javabean的便捷访问。只有在没有EL (或JSTL)支持的情况下,jsp:getProperty才是有用的,但接下来我们要讨论的是十年前的那个时候。当然,您目前使用的Surely容器支持EL。

另请参阅:

票数 2
EN

Stack Overflow用户

发布于 2010-07-12 19:56:46

如果您的AddUserBean类具有NameAgeEmail属性,那么为什么要向它请求sNameiAgesEmail?这是不一致的。

票数 0
EN

Stack Overflow用户

发布于 2010-07-12 20:52:20

试一试

代码语言:javascript
代码运行次数:0
运行
复制
<jsp:getProperty name = "user" property = "SEmail" />

不过,我建议您使用简单的email,而不是sEmail

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3231750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档