javax.el.PropertyNotFoundException: Property 'IdentiNum' not found on type cn.itcast.ssm.pojo.Recomm

今天一直出现这个问题, 在这段代码中我也没看出到底哪里错了,但是就一直访问不到 IdentiNum 这个属性。
这个是jstl 的代码:

  <c:forEach items="${recommesslist}" var="recommesslist"> 
            <tr>
                <td>${recommesslist.recomName}</td>
                <td>${recommesslist.IdentiNum}</td> 
                <td>${recommesslist.telenum}</td>
                <td>${recommesslist.targetcity}</td>
                <td>${recommesslist.targetbuildings}</td>
                <td>${recommesslist.test}</td>
                <td><fmt:formatDate value="${remeslist.creattime}" pattern="yyyy-mm-dd HH:mm:ss" /></td>

                <td> <a href="${pageContext.request.contextPath}/recommesslist/queryItems.action?tele=${remeslist.telenum}">修改</a></td>
            </tr>
            </c:forEach>

在一部分是实体的所有的属性。而且配置是没有问题的。因为当我把这个属性删除的时候可以显示出效果。

public class RecommendMessage {
    private String recomName;
    private String IdentiNum;       //身份证后六位
    private String telenum;         
    private String targetcity;      //意向城市
    private String targetbuildings; //意向楼盘
    private String test;            //备注
    private Date creattime;

这个是控制器的代码

public class ItemController1 implements Controller {

    @Override
    public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {

        List<RecommendMessage> recommesslist = new ArrayList<RecommendMessage>();
RecommendMessage recommes2 = new RecommendMessage();
        recommes2.setRecomName("小雪");
        recommes2.setIdentiNum("345678");
        recommes2.setTelenum("18822839867");
        recommes2.setTargetbuildings("北京市楼盘");
        recommes2.setTargetcity("北京市");
        recommes2.setCreattime(new Date());


        recommesslist.add(recommes1);
//System.out.println(recommesslist.get(0).getIdentiNum());

        //现在要返回一个modelandview
        ModelAndView modelAndView = new ModelAndView();
        // 这个方法就相当于request 的 setattribut() 方法,因此 在jsp页面中,可以通过 这个方法来获得数据
        modelAndView.addObject("recommesslist",recommesslist);
        System.out.println("去设置了list");
        //上面的方法是获得数据,下面的就要指定视图,去找到我要返回给的jsp页面
        modelAndView.setViewName("/WEB-INF/jsp/recommendmessage/recommmeslist.jsp");
        System.out.println("去返回jsp页面");

还有一个疑问,就是

<form action="${pageContext.request.contextPath}/recommesslist/queryItems.action " method="post">

1. action中的内容应该是一个请求的地址。它去请求谁?后面好像有一种其他的方式来实现这个功能
2. /recommesslist/queryItems.action  这个recommesslist的用途是什么?去掉的话好像也没有影响到功能。(经过测试确实不影响。但是并不知道里面那个recommesslist 是啥意思。。。)

这是昨天的问题,保留,下面是解决:

出现问题原因1:
在 实体中定义属性为 大写 IdentiNum ,这个应该是没有影响的,但是为了比较好的命名规范,我改成了小写的 identiNum。
出现问题原因2:
在 实体的RecommendMessage 中的 get set 方法中,我一开始都是自己生成的,但是我修改问题1 以后,重新修改了 get set 方法,没改之前是这样的:

public String getIdentiNum() {
        return identiNum;
    }

public void setIdentiNum(String identiNum) {
        identiNum = identiNum;
    }

看到问题了吧,在set 方法中没有 this,因此他不知道是把那个对象的identiNum 属性设置进去了。

因此正确的为:

public String getIdentiNum() {
        return identiNum;
    }

public void setIdentiNum(String identiNum) {
        this.identiNum = identiNum;
    }

这样就可以了。
然后还要注意jstl 的写法,在属性中间是不能有空格的。否则也得不到信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值