有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案