老师,这个属性明明存在,怎么会,如下

老师,这个属性明明存在,怎么会,如下

http://img1.sycdn.imooc.com//climg/5c331f690001fbe313500672.jpg

http://img1.sycdn.imooc.com//climg/5c331fbf00011fe910100477.jpg

package com.cl.domain;
public class Book {
     private String id;
     private String bookName;
     private String catgorys;
     private String description;
     private float price;
  public Book(String id, String bookName, String catgorys, float price, String description) {
   this.id = id;
   this.bookName = bookName;
   this.catgorys = catgorys;
   this.description = description;
   this.price = price;
  }
  public String getId() {
   return id;
  }
  public void setId(String id) {
   this.id = id;
  }
  public String getBookName() {
   return bookName;
  }
  public void setBookName(String bookName) {
   this.bookName = bookName;
  }
  public String getCategory() {
   return catgorys;
  }
  public void setCategory(String catgory) {
   this.catgorys = catgory;
  }
  public String getDescription() {
   return description;
  }
  public void setDescription(String description) {
   this.description = description;
  }
  public float getPrice() {
   return price;
  }
  public void setPrice(float price) {
   this.price = price;
  }
  @Override
  public String toString() {
   return "User [id=" + id + ", bookName=" + bookName + ", catgory=" + catgorys + ", description=" + description
     + ", price=" + price + "]";
  }
}

#showBooks.jsp显示的代码段
<tbody id="cont">
    <c:forEach items="${applicationScope.bList}" var="book">
     <tr>
      <td>${book.id }</td>
      <td>${book.bookName }</td>
      <td>${book.catgorys }</td>//这个地方报错,可是当我把这个注释掉时,还是报同样的错误,
      <td>${book.price }</td>    //起初是一位存在同名或者输入有误,但排查了都不是
      <td>${book.description }</td>
     </tr>
    </c:forEach>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学的get set 方法是自己手写的么?

这里少了一个s多了一个e,它对应不上就会报错了:

http://img1.sycdn.imooc.com//climg/5c332d040001b62305560198.jpg

应该改成getCatgorys 和 setCatgorys。

建议同学重新把set get方法用自动生成的方法生成一下。尽量不要手写。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • WindBelll 提问者 #1
    恩,可以了,老师我可不可以这样理解,就是当使用JSTL去获取到Javabean中封装的数据时,是通过get的方法实现的,get的变量名一定要和自己设置的变量名相同才能正确的取到值,这样理解对?
    2019-01-07 18:56:53
  • 好帮手慕阿莹 回复 提问者 WindBelll #2
    是的,同学理解的没错,并且还有一点要注意,属性名首字母要小写,虽然同学没有在这个地方出错,老师还是要提醒一下,但如果属性名首字母不小写的话获取也是会出问题的,应该是通过book.catgorys去找到到对应的get方法,然后通过get方法推测出实体类中的对应属性。对应属性名的时候,会自动把属性名首字母对应成小写,如果你的属性名首字母大写,就找不到了。如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
    2019-01-07 19:01:57
  • chrismorgen 回复 提问者 WindBelll #3
    同学的理解是正确的,祝学习愉快~
    2019-01-07 19:02:21
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师