Heim > Java > javaLernprogramm > So implementieren Sie die Funktion zum Hochladen einzelner Dateien und mehrerer Dateien im Spring Webflow in der Java-Entwicklung

So implementieren Sie die Funktion zum Hochladen einzelner Dateien und mehrerer Dateien im Spring Webflow in der Java-Entwicklung

WBOY
Freigeben: 2023-05-22 15:25:06
nach vorne
1053 Leute haben es durchsucht

Eine einzelne Datei hochladen

Vorbereitung

1 Wenn Sie in Ihrem Projekt Federsicherheit verwenden, lesen Sie den vorherigen Artikel, verwenden Sie die zweite Methode im vorherigen Artikel und entfernen Sie den MultipartFilter (falls konfiguriert). Andernfalls , erhalten Sie die Datei nicht

2 Variablen im Prozess (z. B. mit dem var-Tag definierte Variablen) müssen die Serializable-Schnittstelle implementieren.

Implementierungsprozess

Fügen Sie die folgenden Abhängigkeiten zur Datei pom.xml hinzu:

<!-- 支持文件上传 -->
  <dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.2.1</version>
  </dependency>
  <dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
  </dependency>
Nach dem Login kopieren

Fügen Sie den Datei-Upload-Parser zu spring-servlet.xml (Spring MVC-Konfigurationsdatei) hinzu:

<!-- 文件上传解析器-->
   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- one of the properties available; the maximum file size in bytes -->
    <property name="maxUploadSize" value="10485760"/>
  </bean>
Nach dem Login kopieren

Entitätsklasse, denken Sie daran, die zu implementieren Serialisierbare Schnittstelle und der Attributtyp ist MultipartFile:

@Component
public class GoodsEntity implements Serializable{
  private static final long serialVersionUID = 1L;
  private MultipartFile images;
  public MultipartFile getImages() {
    return images;
  }
  public void setImages(MultipartFile images) {
    this.images = images;
  }
}
Nach dem Login kopieren

Prozessdefinitionscode, nichts Besonderes:

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/webflow
   http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
     <var name="goods" class="com.huanle.model.entity.GoodsEntity"/>
     <view-state id="viewfirst" view="/views/user/releasegoods/release_first.jsp" model="goods">
      <transition on="submit" to="viewsecond"></transition>
     </view-state>
     <view-state id="viewsecond" view="/views/user/releasegoods/second.jsp" model="goods">
      <transition on="submit" to="performReleaseGoodsAction"></transition>
     </view-state>
     <action-state id="performReleaseGoodsAction" >
       <evaluate expression="goodsService.save(goods)"></evaluate>
       <transition to="returntouserindex"></transition>
     </action-state>
     <end-state id="returntouserindex" view="/views/user/seller/index.jsp"></end-state>
     <global-transitions>
      <transition on="cancel" to="returntouserindex"></transition>
     </global-transitions>
</flow>
Nach dem Login kopieren

Formularcode hochladen, keine spezielle Konfiguration erforderlich:

<form:form action="${flowExecutionUrl}&_eventId=submit&${_csrf.parameterName}=${_csrf.token}" method="post" commandName="goods" enctype="multipart/form-data">
  <input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}"/>
 商品图片:<form:input id="images" path="images" type="file" multiple="multiple" />
 <input type="submit" >
</form:form>
Nach dem Login kopieren

Das ist alles

Mehrere Dateien hochladen

Eine einzelne Datei hochladen kann mit geringfügigen Modifikationen basierend auf der zuvor hochgeladenen Einzeldatei implementiert werden.

Implementierung

Zuerst muss die Entitätsklasse geändert werden, wobei List zum Speichern mehrerer Dateien verwendet werden soll:

@Component
public class GoodsEntity implements Serializable{
  private static final long serialVersionUID = 1L;
  private List<MultipartFile> images;
  public List<MultipartFile> getImages() {
    return images;
  }
  public void setImages(List<MultipartFile> images) {
    this.images = images;
  }
}
Nach dem Login kopieren

Das Upload-Formular muss ebenfalls geändert werden:

<form:form action="${flowExecutionUrl}&_eventId=submit&${_csrf.parameterName}=${_csrf.token}" method="post" commandName="goods" enctype="multipart/form-data">
  <input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}"/>
商品图片:<form:input path="images" type="file" multiple="multiple"/>
<input type="submit" value="提交">
</form:form>
Nach dem Login kopieren

Fügen Sie einfach ein multiple="multiple"-Attribut hinzu.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Funktion zum Hochladen einzelner Dateien und mehrerer Dateien im Spring Webflow in der Java-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage