Duvida na logica de funcionamento do Spring MVC 3

2 respostas
M

Bom dia,

Estou com uma duvida com relação as annotations do Controller do Spring MVC.

Como eu faço para retorna uma simples string texto para a pagina JSP utilizar atraves da chamada ${texto}

Atualmente eu utilizo o componente ModelAndView para essa funcionalidade.

Será que no Spring 3 não existe uma forma de realizar isso atraves de anotation em cima de metodos "get*"?

Essa eh minha classe controle?

@Controller
@RequestMapping("/main")
public class MainController {

	@RequestMapping("index")
	public ModelAndView index() throws Exception {
		String message = "Hello World, Spring 3.0!";
		// Atualmente eu envio as informações dessa forma
		return new ModelAndView("main/index", "texto", message);
	}
}
Não existe uma forma de se realizar esse retorno sem retornar um ModelAndView? Algo semelhante a isso:
@Controller
@RequestMapping("/main")
public class MainController {

	private String texto="Hello World";

	@RequestMapping("texto")
	public String getTexto(){
		return this.texto;
	}
}

2 Respostas

L

É possível, mas não uma String, que é interpretada como um caminho lógico de uma View.

Para obter o efeito desejado, crie um objeto que encapsule uma String. Daí, se sua classe se chama Foo, você pode referenciá-lo por ${foo}.

Mais informações podem ser encontradas em http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-arguments

M

Obrigado pela orientação.

Consegui fazer dessa forma:
@Controller  
 @RequestMapping("/main")  
 public class MainController {  
   
     private String texto="Hello World";  

     @ModelAttribute("texto")
     public String getTexto(){  
         return this.texto;  
     }  
 }

Espero não estar quebrando nenhuma regra ao realizar o envio dessa forma.

Criado 9 de agosto de 2010
Ultima resposta 9 de ago. de 2010
Respostas 2
Participantes 2