Recentemente, encontrei um problema no processo de construção de um site usando a Spring Boot: ao se registrar, o usuário precisa fazer upload de uma foto de perfil própria. Após o registro bem -sucedido, ele pulou para o centro pessoal e exibiu informações do usuário no centro pessoal. Encontrei um problema ao exibir a imagem do perfil: Ao fazer o upload da imagem do perfil, eu armazenei a imagem do perfil na pasta estática sob o arquivo do projeto, armazenei seu endereço no usuário correspondente no banco de dados e adicionei uma implantação a quente na idéia, mas depois de registrar e pular no centro pessoal, ele ainda não pode exibir a imagem do perfil. Só é possível quando o projeto for lançado na próxima vez que entrar no centro pessoal.
Fiquei preocupado com esse problema por um longo tempo e finalmente resolvi assim: criei uma nova pasta do WebApp no diretório principal e configurei seu caminho. A seguir, é apresentada uma pequena demonstração da solução. É relativamente simples de fazer, por favor me perdoe ~~ O código principal é o seguinte:
Interface de registro:
<! Doctype html> <html lang = "pt" xmlns: th = "http://www.thymeleaf.org"> <head> <meta charset = "utf-8"/> <title> title </title>@head@body//""/"/zhuce" ENCTYPE = "Multipart/form-data"> <breting> Nome </crety> <input type = "text" name = "name"/> <bel> senha </celt> <input type = "senha" name = "senha"/> <bel> upload the picture </elbel> <input type = "file" name = "file"/> <input = "" value = "upload"/> </morm> </body> </html>
O controle é o seguinte:
pacote com.example.demo.Control; importar com.example.demo.dao.userRepository; importar com.example.demo.Domain.User; importar org.springFramework.Bean.Factory.AnnoTation.autouired; import.springFramework.StereTypey.ConTory.Conntration.ATowired; ImmonGerg.sPernGeReReRetyPy.ContRyLler; org.springframework.web.bind.annotation.getMapping; importar org.springframework.web.bind.annotation.postMapping; importar org.springframework.web.bind.annotation.requestparam; importação org.springfRodweb.web.web.web.wrel.bind.requestparam; importação Org.sPringFramweb.web.web.webr.bind.requestration.requeM; Java.io.*;/*** Criado por 18274 em 2017/8/9. */ @Controlerpublic class Control {@AUTowired UserRepository UserRepository; @GetMapping (value = "/zhuce") public string zhuce () {return "zhuce"; } @PostMapping (value = "/zhuce") public String Tijiao (@RequestParam (value = "Nome") Nome da sequência, @RequestParam (value = "senha") senha da sequência, @RequestParam (value = "arquivo") arquivo multiparttFile, modelo modelo) {User = novo usuário (); user.setUserName (nome); user.setPassword (senha); if (! file.isEmpty ()) {tente {bufferoudOutputStream out = new BufferoudOutputStream (new FileOutputStream (new File ("f: // Flag cop // Demo5 // src // main // webApp //" Nome+". Jpg"); OUTOUNDO (FILHAÇÃO) } Catch (ioexception e) {E.PrintStackTrace ();Centro Pessoal:
<! Doctype html> <html lang = "en" xmlns: th = "http://www.thymeleaf.org"> <head> <meta charset = "utf-8"/> <title> title </cheft> </body> <p> USERNAME: </ th: text = "$ {user.username}"> </p> <p> imagem: </p> <img th: src = "@{$ {user.username}+'. jpg'}"/> </body> </html>Configuração do caminho do webApp
pacote com.example.demo.config; importar org.springframework.context.annotation.configuration; importar org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import Org.springFramework.web.VletLeftlet.Conftion; * Criado em 18274 em 2017/8/9. */ @ConfigurationPublic Classe MyWebAppConfigurer estende webmvcConfigureRAdApter {@Override public void AddResourceHandlers (RecursondlerRegistry Registry) {Registry.addResourCansation ("Src/main/webApp/**").). super.addresourcehandlers (Registro); }}Classe de entidade do usuário correspondente:
pacote com.example.demo.Domain; importar javax.persistence.Entity; importar javax.persistence.GeneratedValue; importar javax.persistence.id;/*** criado por 18274 em 2017/8/9. */ @Entitypublic classe usuário {@id @generatedValue Private Long ID; Nome de usuário privado de string; senha de sequência privada; private string tupian; // endereço de imagem public user () {} public long getId () {return id; } public string getUserName () {return userName; } public string getPassword () {return senha; } public string gettupian () {return tupian; } public void setId (longo id) {this.id = id; } public void setUserName (string userName) {this.username = nome de usuário; } public void setPassword (string senha) {this.password = senha; } public void Settupian (String tupian) {this.tupian = tupian; }}Interface para a classe de entidade do usuário:
pacote com.example.demo.dao; import com.example.demo.domain.user; importar org.springframework.data.jpa.repository.jparepository;/*** Criado por 18274 em 2017/8/9. */interface pública UserRepository estende JParepository <Usuário, Long> {}Finalmente corra o seguinte:
Registre -se para fazer upload do Avatar:
Centro Pessoal:
PS: Se você estiver combinando a segurança da primavera, só precisará obter informações de session.spring_security_context.authentication.principal.xxx.
Anexe o endereço desta pequena demonstração enviada:
http://xiazai.vevb.com/201712/yuanma/demo5(vevb.com).rar
Resumir
O exposto acima está o resumo da implementação da inicialização da primavera, carregando imagens e exibindo -as na página e encontrando problemas. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!