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

来源:互联网 发布:ext js 学多久 编辑:程序博客网 时间:2024/06/05 18:44

今天一直出现这个问题, 在这段代码中我也没看出到底哪里错了,但是就一直访问不到 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 的写法,在属性中间是不能有空格的。否则也得不到信息。

阅读全文
0 0
原创粉丝点击