问题1:springMVC:jsp页面的form表单上传数据时包含普通字符串数据和file类型的数据时,servlet后台接收不到数据,报400 错误的客户端请求类似的错误
原因:form表单上传file类型的数据时,entype会设置为multipart/form-data。entype规定了在发送到服务器之前应如何对表单数据编码。若是multipart/form-data,则是以流的形式,不对字符编码;若是application/x-www-form-urlencoded,则在发送前编码所有字符;若是text/plain,会将空格转换为‘+’,但不对特殊字符编码。在controller层接收数据时,最好将MultipartFile类型的参数放在一个。因为servlet容器收到请求后会先检查是否有MultipartFile类型的参数,若有,会进行包装。
问题2:springMVC结合Hibernate出现:Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister。错误
原因:实体类的属性中有包装器类型的属性时,该属性生成的getter和setter方法必须符合规范。如有一个Integer类型的属性id,生成的getter方法的返回值必须是Integer且setter方法的参数类型也必须是Integer,否则会报上述错误。