Je suis assez nouveau au printemps, alors excuses si je ne vois pas la réponse évidente ici.
I Configurez un petit projet de démonstration avec un contrôleur MVC à ressort et le déployé sur le moteur App. Dans mon contrôleur, je voudrais lire le contenu d'un fichier statique dans une chaîne. Quelle est la meilleure façon de le faire? P>
J'ai googlé un peu mais je cherche probablement la mauvaise chose. J'ai essayé ci-dessous, mais cela ne fonctionne pas: p> Toute poussée dans la bonne direction sera très appréciée: -) p> p>
4 Réponses :
La notation "Fichier:" Et "ClassPath:" N'est pas correct avec FileReader. Je vous suggère de créer un SystemResource
FileSystemResource resource = new FileSystemResource("/WEB-INF/content/somecontent.txt");
Les conteneurs de servlet en général et GAE en particulier vous permettent d'utiliser l'API de fichier de l'intérieur du récipient de servlet comme celui-ci.
AutoWIRE Votre contrôleur avec le servlet Quelque chose comme devrait être OK: P> servleContext code>, et chercher la ressource à partir de cela. En outre, votre manipulation des exceptions n'est pas géniale, vous ne devriez pas ignorer les exceptions comme ça, ils sont là pour une raison pour une raison. P> <mvc:view-controller path="/test" view-name="/WEB-INF/content/somecontent.txt"/>
Brillant, ça marche. Merci! En ce qui concerne la manipulation des exceptions: 100% d'accord, je viens d'essayer de le garder court parce que ce n'était pas essentiel ;-)
Est-ce toujours légal et la meilleure pratique si je le fais dans le service code> code>? :RÉ
Comme il s'agit d'une application de printemps, vous pouvez compter sur ses cours pour aider à cela. En particulier, org.springframework.web.context.support.servletcontextresource devrait s'avérer utile:
servleContexTreXource code> ne vous apporte aucun avantage ici, cependant; Vous pouvez également simplement simplement le faire du servleContext code> directement.
Êtes-vous sûr d'avoir besoin de la conversion de codage introduit en lisant un contenu de fichier via Si non (c'est-à-dire si vous voulez servir Un fichier tel quel), vous pouvez utiliser le renvoi de demande: p> ou même (si vous avez lecteur code> et de le renvoyer comme chaîne code>? internalviewresolver code>): p> @RequestMapping(value = "/test", method = RequestMethod.GET)
public String myTest() {
return "forward:/WEB-INF/content/somecontent.txt";
}
Enfer ... Assez sûr, une seconde après avoir posé la question ici, je l'ai eu du travail ... le chemin correct dans le filereader doit être "Web-Inf / Content / Somecontent.txt" Je quitte la question ouverte pour le moment, parce que je Sentez-vous, ce n'est pas le moyen le plus élégant comment faire cela.