[WebMVC][Dispatcher] Rendre un vue avec une extension différente
Bonjour tout le monde,
Par defaut, mon application utilise l'extension ".html" mais je dois créer une page Javascript depuis une Servlet.
Mon idée etait donc de rajouter un <servlet-mapping> :
Code:
1 2 3 4 5 6 7 8 9
|
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.dyn.js</url-pattern>
</servlet-mapping> |
Mais ça ne semble pas fonctioner, Tomcat me renvoei le message suivant :
Citation:
Etat HTTP 404 - /lib/translate.dyn.js
type Rapport d'�tat
message /lib/translate.dyn.js
description La ressource demand�e (/lib/translate.dyn.js) n'est pas disponible.
Est-il possible de signaler a Spring qu'il dois traiter d'autres extensions ?
Merci
DispatcherServlet, servlet unique.
Bonjour Blaise,
Citation:
Envoyé par
Blaise1
Bonjour tout le monde,
Par defaut, mon application utilise l'extension ".html" mais je dois créer une page Javascript depuis une Servlet.
Spring Web MVC utilise le concept de ModelAndView.
Il te suffit de créer une view spécifique chargée d'écrire dans un fichier ton code javascript (avec les classes de gestion des flux, c'est très simple: InputStream/OutputStream).
Par exemple une classe qui serait nommée "WriteInFile", dont le constructeur prendrait le path, le nom et l'extension du fichier à créer.
WriteInFileController -> ton controller Spring,
WriteInFile(...)View->tes view associées à ce controller.
A toi, après, de choisir la sortie:
- HTML classique, (à ce moment-là, ce n'est peut-être pas la peine d'implémenter une view, un simple msg d'état de la tâche dans ton Controller suffira...),
- Excel/Word avec les librairies POI,
- PDF avec iText.
Mais tu n'as en aucun cas besoin d'ajouter un servlet à Spring pour faire cela... Un DispatcherServlet par application, ça suffit amplement.
Dans ton cas, une view nommée WriteInFileJavascriptView() serait une piste intéressante si tu veux afficher le contenu de ton fichier Javascript à l'écran...