struts1 使用BeanUtils填充界面录入数据报 错
2.后台服务篇:
1.获取界面录入数据,报错:
java.lang.IllegalArgumentException: No bean specified
at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:790)
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:962)
at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:836)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:305)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.ServletException: BeanUtils.populate
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:497)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
原因:
界面的输入域name值存在使用“.”分隔的名称,而对应的接收界面输入的bean没有“.”号之前的属性
eg:
<input type="hidden" name="user.id"/>
使用BeanUtils.populate 填充界面录入的输入到bean时,要求bean有user 属性,如果没有则会报上述错误。