2016-12-01 1 views
0

j'ai commencé avec le printemps MVC. mais mon internalViewReolver retourne juste la chaîne au lieu de résoudre la page de mon chemin. S'il vous plaît, aidez-moi, où est-ce que je me suis trompé?internalViewResolver ne fonctionne pas dans

Voici mon fichier config .:

package assignment.config; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.ViewResolver; 
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages={"assignment.view"}) 
public class WebConifg extends WebMvcConfigurerAdapter { 

    @Override 
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 

     configurer.enable();; 
    } 
    @Bean 
    public ViewResolver viewResolver(){ 
     InternalResourceViewResolver resolver=new InternalResourceViewResolver("/WEB-INF/views/",".jsp"); 
     resolver.setExposeContextBeansAsAttributes(true); 

     return resolver; 

    } 
} 

Voici mon contrôleur:

package assignment.view; 

import java.util.Map; 

import org.springframework.http.MediaType; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RestController; 

import assignment.model.User; 

@RestController(value="/login") 
public class Controller { 

@RequestMapping(method=RequestMethod.POST) 
public String userLogin(@RequestBody User user){ 
    System.out.println(user); 
    return "success"; 
} 

@RequestMapping(method=RequestMethod.GET) 
public String register(Model model){ 
    User user=new User(); 
    model.addAttribute("userForm", user); 
    System.out.println(user); 
    return "Register"; 
} 
} 

Mon WebIntilizer.java

package assignment.config; 

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; 

public class WebInitilizer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 

     return new Class<?>[]{RootConfig.class}; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 

     return new Class<?>[]{WebConifg.class}; 
    } 

    @Override 
    protected String[] getServletMappings() { 

     return new String[]{"/"}; 
    } 

} 

Alors, quand je frappe http://localhost:8080/assignment/login je pressenties pour vous inscrire. jsp mais il a juste montré Enregistrer comme une chaîne.

+0

Utiliser l'annotation Controller en place d'annotation RestController. Peut aider. – SachinSarawgi

+0

Vous avez essayé le solutin ?? c'est du travail?? – SachinSarawgi

Répondre

0

Changer l'annotation de RestController au contrôleur annotation.

Cela fonctionnera à coup sûr.

Lorsque vous utilisez l'annotation RestController l'application web envoie la réponse au format texte comme un texte simple (votre cas), JSON, XML.

+0

@ LowCool si cela ne vous aide pas s'il vous plaît faites le moi savoir. Je vais essayer d'aider. – SachinSarawgi

+0

Cela a fonctionné.pouvez-vous s'il vous plaît me dire la différence exacte entre ce 2 ?? – LowCool

+0

@LowCool quand vous dites que vous utilisez l'annotation RestController, implique donc automatiquement que la réponse sera au format texte comme je l'ai dit. – SachinSarawgi