Caused by: org.springframework.beans.NotReadablePropertyException

异常详情:

Caused by: org.springframework.beans.NotReadablePropertyException: Invalid property 'dayNew' of bean class [com.zttech.demo.cms.entity.CmsConfigAttr]: Bean property 'dayNew' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
    at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:619) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:610) ~[spring-beans-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) ~[spring-context-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:229) ~[spring-context-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:120) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) ~[spring-webmvc-4.2.5.RELEASE.jar:4.2.5.RELEASE]
    at org.apache.jsp.WEB_002dINF.views.demo.cms.global.otherHome_jsp._jspx_meth_form_005finput_005f0(otherHome_jsp.java:506) ~[?:?]
    at org.apache.jsp.WEB_002dINF.views.demo.cms.global.otherHome_jsp._jspx_meth_form_005fform_005f0(otherHome_jsp.java:373) ~[?:?]
    at org.apache.jsp.WEB_002dINF.views.demo.cms.global.otherHome_jsp._jspService(otherHome_jsp.java:165) ~[?:?]
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) ~[jasper.jar:7.0.78]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) ~[servlet-api.jar:?]
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439) ~[jasper.jar:7.0.78]
    ... 84 more

原因:jsp中的<form:input/>标签中哟一个属性path,它里面的字符串内容要和modelAttribute中对应的类的getter和setter方法后面跟的属性名称一致。

拿这个错误举例,

<form:form id="inputForm" modelAttribute="cmsConfigAttr" action="${ctx}/cms/global/otherEdit.jhtml" method="post" class="form-horizontal">

<form:form/>标签的modelAttribute中我设置了cmsConfigAttr。这是一个CmsConfigAttr类的对象,它里面有个DAYNEW属性。

public static final String DAYNEW = "day";

这是一个static final 的字符串,按照标准来说是要全部大写的。于是在自动生成getter和setter方法的时候就会变成getDaynew()setDaynew.

所以在<form:input path="daynew"/>使用的时候,path里面就不能写dayNew,而是要写daynew。就是用getXxxxx(),再把第一个字母小写。

boolean类型的isXxxx(),同理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值