J'essaye d'implémenter un téléchargement de fichier dans mon application Spring basé sur le Spring documentation. Cependant, lorsque j'ajoute la référence SimpleUrlHandlerMapping, je ne peux même pas router vers ma page de connexion.Spring SimpleUrlHandlerMapping ne permettant pas le routage pour une page html
Dans mon web.xml, je l'ai tous les fichiers .htm mappé à mon servlet:
<servlet-mapping>
<servlet-name>myapp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
puis, dans myapp-servlet.xml, j'ai ceci:
<bean name="/login.htm" class="com.example.web.LoginFormController">
<property name="sessionForm" value="true" />
<property name="commandName" value="loginCommand" />
<property name="commandClass" value="com.example.command.LoginCommand" />
<property name="authenticationService" ref="authenticationService" />
<property name="loginDataAccess" ref="loginDAO" />
<property name="validator" ref="loginValidator" />
<property name="formView" value="login" />
<property name="successView" value="hello.htm" />
</bean>
Cela permet moi d'aller à la page de connexion et de vous connecter. Cependant, quand j'ajoute ce qui suit en fonction de la documentation, je reçois cette erreur: Aucune correspondance trouvée pour la requête HTTP avec l'URI [/myapp/login.htm] dans DispatcherServlet avec le nom « myapp »
Ce sont les lignes J'ai ajouté au fichier myapp-servlet.xml:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>/upload.form=fileUploadController</value>
</property>
</bean>
<bean id="fileUploadController" class="com.example.web.FileUploadController">
<property name="commandClass" value="com.example.domain.FileUploadBean" />
<property name="formView" value="fileuploadform" />
<property name="successView" value="hello.htm" />
</bean>
Si je prends la section urlMapping, je peux accéder à la page de téléchargement, mais je reçois un IllegalStateException. Comment est-ce que Spring a routé les fichiers htm normalement et m'a permis de télécharger un fichier? L'URL urlMapping ne devrait-elle pas importer quand le upload.form est appelé?
Mise à jour
Per SKaffman's answer, je mis à jour le myapp-servlet.xml pour ressembler à ceci:
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/upload.form=fileUploadController
/upload.htm=fileUploadController
/login.htm=loginController
</value>
</property>
</bean>
Cela me permet d'accéder à la page de téléchargement, mais quand je clique sur le soumettre le bouton, je reçois un 404 pour upload.form en disant "(/myapp/upload.form) n'est pas disponible." Si je retire le fichier upload.htm du mappage, je ne peux pas accéder à cette page. Je ne sais pas quel mappage utiliser pour la page et le téléchargement. La page de téléchargement a cette action définie:
<form method="post" action="upload.form" enctype="multipart/form-data">
Merci - cela me permet de naviguer vers la page, mais je ne peux pas télécharger le fichier. J'ai mis à jour la question avec plus de détails. Aucune suggestion? –