java HTTP状态500无法转换类型的值
我是春天和冬眠的新手,我正在尝试开发一个电子文档管理系统,上传文件时遇到了一些问题。这是我的代码,我的问题在下面
HTTP Status 500 - Failed to convert value of type [java.lang.String] to required type
[org.springframework.web.multipart.commons.CommonsMultipartFile[]]; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type
[org.springframework.web.multipart.commons.CommonsMultipartFile]: no matching editors or conversion strategy found
领域
@Entity
@Table(name = "DEPUTES_APPEAL")
public class DeputesAppeal implements Serializable {
@Id
@Column(name = "ID")
@GeneratedValue
private long id;
@Column(name = "NumberOfAppeal")
private Integer number;
@Column(name = "DateOfIncomingAppeal")
private Date IncomingDate;
@Column(name = "NameOfDepute")
private String NameOfDepute;
@Column(name = "ResolutionOfChief")
private String ResolutionOfChief;
@Column(name = "TypeOfAppeal")
private String typeOfAppeal;
@OneToMany(mappedBy = "deputesAppeal", cascade = CascadeType.ALL,fetch = FetchType.EAGER)
private final Set<UploadFiles> fileUpload = new HashSet<UploadFiles>();
public DeputesAppeal(){}
public DeputesAppeal(int id, int number, Date incomingDate, String nameOfDepute, String resolutionOfChief) {
this.id = id;
this.number = number;
this.IncomingDate = incomingDate;
this.NameOfDepute = nameOfDepute;
this.ResolutionOfChief = resolutionOfChief;
}
public long getId() {
return id;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
public Date getIncomingDate() {
return IncomingDate;
}
public void setIncomingDate(Date incomingDate) {
IncomingDate = incomingDate;
}
public String getNameOfDepute() {
return NameOfDepute;
}
public void setNameOfDepute(String nameOfDepute) {
NameOfDepute = nameOfDepute;
}
public String getResolutionOfChief() {
return ResolutionOfChief;
}
public void setResolutionOfChief(String resolutionOfChief) {
ResolutionOfChief = resolutionOfChief;
}
public String getTypeOfAppeal() {
return typeOfAppeal;
}
public void setTypeOfAppeal(String typeOfAppeal) {
this.typeOfAppeal = typeOfAppeal;
}
public Set<UploadFiles> getFileUpload() {
return fileUpload;
}
}
上传文件类
@Entity
@Table(name = "UploadFiles")
public class UploadFiles {
@Id
@GeneratedValue
@Column(name = "FILE_ID")
private long id;
@Column(name = "FILE_NAME")
private String fileName;
@Column(name = "FILE_DATA")
private byte[] data;
@ManyToOne
@JoinColumn(name = "ID")
private DeputesAppeal deputesAppeal;
public long getId() {
return id;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
public DeputesAppeal getDeputesAppeal() {
return deputesAppeal;
}
}
道层
public interface DeputesAppealDao {
List<DeputesAppeal> getAll();
DeputesAppeal getById(Integer id);
void addAppeal(DeputesAppeal deputesAppeal, CommonsMultipartFile[] fileUpload);
void deleteAppeal(Integer id);
void editAppeal(DeputesAppeal deputesAppeal, DeputesAppeal existingDeputesAppeal);
DeputesAppeal modSession(DeputesAppeal deputesAppeal);
List<DeputesAppeal> abstractSearch(String searchingChar);
}
DAO impl
public class MysqlImpl implements DeputesAppealDao{
@Autowired
SessionFactory sessionFactory;
public List<DeputesAppeal> getAll() {
Query query = sessionFactory.getCurrentSession().createQuery("from DeputesAppeal");
return query.list();
}
public DeputesAppeal getById(Integer id) {
DeputesAppeal deputesAppeal = (DeputesAppeal) sessionFactory.getCurrentSession().get(DeputesAppeal.class, id);
return deputesAppeal;
}
public void addAppeal(DeputesAppeal deputesAppeal, CommonsMultipartFile[] fileUpload) {
if (fileUpload != null && fileUpload.length > 0) {
for (CommonsMultipartFile aFile : fileUpload) {
UploadFiles uploadFiles = new UploadFiles();
uploadFiles.setFileName(aFile.getOriginalFilename());
uploadFiles.setData(aFile.getBytes());
deputesAppeal.getFileUpload().add(uploadFiles);
}
sessionFactory.getCurrentSession().save(deputesAppeal);
}
}
public void deleteAppeal(Integer id) {
DeputesAppeal deputesAppeal = (DeputesAppeal) sessionFactory.getCurrentSession().get(DeputesAppeal.class, id);
sessionFactory.getCurrentSession().delete(deputesAppeal);
}
public void editAppeal(DeputesAppeal deputesAppeal, DeputesAppeal existingDeputesAppeal) {
sessionFactory.getCurrentSession().save(existingDeputesAppeal);
}
public DeputesAppeal modSession(DeputesAppeal deputesAppeal) {
DeputesAppeal deputesAppeal1 = (DeputesAppeal) sessionFactory.getCurrentSession().get(DeputesAppeal.class, deputesAppeal.getId());
return deputesAppeal1;
}
public List<DeputesAppeal> abstractSearch(String searchingChar) {
Query query = sessionFactory.getCurrentSession().createQuery("from DeputesAppeal where id = " + searchingChar);
return query.list();
}
}
服务
public interface DeputesAppealService {
List<DeputesAppeal> getAll();
DeputesAppeal getById(Integer id);
void add(DeputesAppeal deputesAppeal, CommonsMultipartFile[] fileUpload);
void delete(Integer id);
void edit(DeputesAppeal deputesAppeal);
List<DeputesAppeal> abstractSearch(String searchingChar);
}
服务impl
@Service
@Transactional
public class DeputesAppealServiceImpl implements DeputesAppealService{
@Autowired
DeputesAppealDao deputesAppealDao;
public List<DeputesAppeal> getAll() {
return deputesAppealDao.getAll();
}
public DeputesAppeal getById(Integer id) {
return deputesAppealDao.getById(id);
}
public void add(DeputesAppeal deputesAppeal, CommonsMultipartFile[] fileUpload) {
deputesAppealDao.addAppeal(deputesAppeal, fileUpload);
}
public void delete(Integer id) {
deputesAppealDao.deleteAppeal(id);
}
public void edit(DeputesAppeal deputesAppeal) {
DeputesAppeal existingDeputesAppeal = deputesAppealDao.modSession(deputesAppeal);
existingDeputesAppeal.setIncomingDate(deputesAppeal.getIncomingDate());
existingDeputesAppeal.setNameOfDepute(deputesAppeal.getNameOfDepute());
existingDeputesAppeal.setNumber(deputesAppeal.getNumber());
existingDeputesAppeal.setResolutionOfChief(deputesAppeal.getResolutionOfChief());
existingDeputesAppeal.setTypeOfAppeal(deputesAppeal.getTypeOfAppeal());
deputesAppealDao.editAppeal(deputesAppeal, existingDeputesAppeal);
}
public List<DeputesAppeal> abstractSearch(String searchingChar) {
return deputesAppealDao.abstractSearch(searchingChar);
}
}
控制器
@Controller
@RequestMapping(value = "/main")
public class MainController {
@Qualifier("DeputesAppealService")
@Autowired
DeputesAppealService deputesAppealService;
@RequestMapping(value = "/mainFrame", method = RequestMethod.GET)
public String getMainPage(){
return "mainPage";
}
@RequestMapping(value = "/resultOfSearching", method = RequestMethod.GET)
public String getSearchResult(Model model, @ModelAttribute("searchChar")String searchResult){
List<DeputesAppeal> deputesAppeals = deputesAppealService.abstractSearch(searchResult);
model.addAttribute("ListOfAppeals", deputesAppeals);
return "searchingResultPage";
}
@RequestMapping(value = "mainFrame/new", method = RequestMethod.GET)
public String getAddNewAppealPage(){
return "addPage";
}
@RequestMapping(value = "mainFrame/new", method = RequestMethod.POST)
public String addNewAppeal(@ModelAttribute("Appeal")DeputesAppeal deputesAppeal,
@RequestParam("fileUpload")CommonsMultipartFile[] fileUpload){
deputesAppealService.add(deputesAppeal, fileUpload);
return "mainPage";
}
@RequestMapping(value = "mainFrame/deleted", method = RequestMethod.GET)
public String deleteAppeal(@RequestParam(value = "id", required = true) Integer id, Model model){
deputesAppealService.delete(id);
model.addAttribute("id", id);
return "deletedPage";
}
@RequestMapping(value = "mainFrame/editPage", method = RequestMethod.GET)
public String GetEdit(@RequestParam(value = "id", required = true) Integer id, Model model){
model.addAttribute("editedAppeal", deputesAppealService.getById(id));
return "editPage";
}
@RequestMapping(value = "mainFrame/editPage", method = RequestMethod.POST)
public String editCurrentAppeal(@ModelAttribute("userAttribute") DeputesAppeal deputesAppeal,
@RequestParam(value = "id", required = true)Integer id, Model model) {
deputesAppeal.setNumber(id);
deputesAppealService.edit(deputesAppeal);
model.addAttribute("id", id);
return "editedPage";
}
}
添加页面。jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<!-- Bootstrap core -->
<script src="<c:url value="../../resources/bootstrap/jquery/jquery-2.2.2.min.js" />" ></script>
<script src="<c:url value="../../resources/bootstrap/js/bootstrap.min.js" />" ></script>
<link href="<c:url value="../../resources/bootstrap/css/bootstrap.min.css" />" rel="stylesheet"/>
</head>
<body>
<c:url value="/main/mainFrame/new" var="SaveUrl"/>
<form:form method="POST" action="${SaveUrl}" modelAttribute="${Appeal}" cssStyle="width:400px; margin-left:auto; margin-right:auto;margin-top: 50px;">
<input type = "text" name = "number" class = "form-control" placeholder = "type number"/>
<br/>
<input type = "date" name = "IncomingDate" class = "form-control"/>
<br/>
<input type = "text" name = "NameOfDepute" class = "form-control" placeholder = "type name"/>
<br/>
<input type = "text" name = "ResolutionOfChief" class = "form-control" placeholder = "type resolution"/>
<br/>
<select name="typeOfAppeal" class = "form-control" style="width:400px; margin-left:auto; margin-right:auto;margin-top: 25px;">
<option value="DEPUTE_REQUEST">DEPUTE_REQUEST</option>
<option value="DEPUTE_TREATMENT">DEPUTE_TREATMENT</option>
</select>
<br/>
<input type="file" name="fileUpload" style="margin-left: auto;margin-right: auto; margin-top: 25px;">
<br/>
<button type = "submit" class = "btn btn-success" value = "Save" style="width: 400px; margin-left:auto; margin-right:auto;margin-top: 20px;">Accept</button>
</form:form>
</body>
</html>
如果有人帮助我,那就太酷了
共 (0) 个答案