Duvida no uso do Annotation no Spring

4 respostas
R

boa tarde pessoal,

estou estudando o Spring aqui, mais ta dando trabalho, a minha duvida agora é o seguinte, estou usando o annotation do Spring,

preciso fazer o seguinte, em uma classe ter vários ModelAndView, como exemplo a classe abaixo:
ExampleMultiController.java

import java.util.HashMap;
import java.util.Map;

import javax.mail.MessagingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class ExampleMultiController {
	 
	@RequestMapping("/actionA")
	public ModelAndView actionA(HttpServletRequest request,
			HttpServletResponse response) throws MessagingException {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		map.put("resultado", "Action A");
		
		return new ModelAndView("usuario/cadastro_confirmacao", map);
	}
	
	@RequestMapping("/actionB")
	public ModelAndView actionB(HttpServletRequest request,
			HttpServletResponse response) throws MessagingException {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		map.put("resultado", "Action B");
		
		return new ModelAndView("usuario/cadastro_confirmacao", map);
	}
	
	@RequestMapping("/actionC")
	public ModelAndView actionC(HttpServletRequest request,
			HttpServletResponse response) throws MessagingException {
		
		Map<String, Object> map = new HashMap<String, Object>();
		
		map.put("resultado", "Action C");
		
		return new ModelAndView("usuario/cadastro_confirmacao", map);
	}
}

já olhei em vários lugares, porem não estou conseguindo fazer funcionar o exemplo,

uma classe controller comum funciona tranquilo quando adicionado :

@Bean
@UrlMapping("/ativacao")

porem como ficaria para vários ModelAndView em um unico controller?

valeu pessoal,
Rafael Hornung

4 Respostas

joaosouza

Olá rafaelhornung blz…

Vc já tentou fazer assim…???

@Controller  
public class ExampleMultiController extends MultiActionController { 

   @RequestMapping("/actionA")  
   public ModelAndView actionA(HttpServletRequest request,  
                                              HttpServletResponse response) throws MessagingException {  

   }

   @RequestMapping("/actionB")  
   public ModelAndView actionA(HttpServletRequest request,  
                                              HttpServletResponse response) throws MessagingException {  

   }

   ...
}

Falow !!!

R

joaosouza:
Olá rafaelhornung blz…

Vc já tentou fazer assim…???

@Controller  
public class ExampleMultiController extends MultiActionController { 

   @RequestMapping("/actionA")  
   public ModelAndView actionA(HttpServletRequest request,  
                                              HttpServletResponse response) throws MessagingException {  

   }

   @RequestMapping("/actionB")  
   public ModelAndView actionA(HttpServletRequest request,  
                                              HttpServletResponse response) throws MessagingException {  

   }

   ...
}

Falow !!!

valeu pela dica, eu testei aqui mais não deu certo,

no console do eclipse ele mostra o seguinte

Página: /actionA.htm Contexto: /exemplo
13:47:22,852  WARN PageNotFound:1068 - No mapping found for HTTP request with URI [/exemplo/actionA.htm] in DispatcherServlet with name 'dispatcher'

eu estou tentando acessar pela url http://127.0.0.1:8080/spring-example/actionA.htm

tenho o arquivo:
dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:sa="http://sannotations.sourceforge.net/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
       http://sannotations.sourceforge.net/context http://sannotations.sourceforge.net/context.xsd"
	default-autowire="byName">
	
	<import resource="classpath*:applicationContext.xml" />
     <sa:annotation-autoload />
     
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
    
    <bean id="viewNameTranslator"
          class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator" />
    
    <bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
    	<property name="resourceLoaderPath" value="/" />
    	<!--property name="configLocation" value="WEB-INF/velocity.properties" /-->
    </bean>
    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver" >
          <property name="prefix" value="pages/" />
          <property name="suffix" value=".vm" />
          <property name="toolboxConfigLocation" value="WEB-INF/toolbox.xml" />
    </bean>

</beans>

e o applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xmlns:sa="http://sannotations.sourceforge.net/context"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	   http://sannotations.sourceforge.net/context http://sannotations.sourceforge.net/context.xsd">
	   
	   <sa:annotation-autoload />
</beans>

sou iniciante no spring, se vc tiver algum exemplo bem basico que use o MultiActionController ou as Annotation em um controller com mais de um metodo eu agradeço,

Rafael Hornung

joaosouza

Então cara eu nunca cheguei a implementar um sistema com o Spring Annotations, sempre utilizei as
configurações via xml, e sempre utilizei o MultiActionController para simplificar e centralizar os metodos…

Mas vou procurar alguma coisa e posto aqui caso encontre…

Falow !!!

R

joaosouza:
Então cara eu nunca cheguei a implementar um sistema com o Spring Annotations, sempre utilizei as
configurações via xml, e sempre utilizei o MultiActionController para simplificar e centralizar os metodos…

Mas vou procurar alguma coisa e posto aqui caso encontre…

Falow !!!

valeu

Criado 29 de abril de 2008
Ultima resposta 29 de abr. de 2008
Respostas 4
Participantes 2