jsp:useBean的属性class值一直报错的问题
先附上代码:
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 2 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <html> 5 <head> 6 <title>jsp:setProperty标签</title> 7 </head> 8 9 <body> 10 <jsp:useBean id="person" class="edu.hust.domain.Person" scope="page"/> 11 <!-- 手动为bean属性赋值 --> 12 <jsp:setProperty name="person" property="name" value="abc"> <br> 13 </body> 14 </html>
今天在学习jsp后,尝试着写第一个jsp代码,但发现jsp:useBean标签的class属性值一直报错,纠结了很长一段时间,终于解决了。
这得从什么是javaBean说起。javaBean是拥有特殊写法的一类java,一个javabean必须满足三个条件:
1,属性必须私有化;
2,必须拥有一个无参的构造函数;
3,私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规则。
而我的JavaBean是这么写的:
package edu.hust.domain; public class Person { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
很明显这里面是没有控参数的构造函数的,因此它不是一个标准的JavaBean,尽管它有一个默认的控参数构造函数,但是在代码里是没有体现的,编译器就通不过,因此只需在上面的代码里面加入一个控参数的构造函数就可以。值得注意的是,当我再将空参数的构造函数删除时,错误也不再出现。
参考:http://hi.baidu.com/lqihidnqhobfmoq/item/a1d6d3ed883ea32c5b7cfb61
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。