2013-11-09 9 views
1

Привет, новый в весеннем мире, поэтому я хочу создать свой собственный контроллер, используя нотацию @Controller, но я полагаю, что я что-то делаю плохо. Кто-нибудь может мне помочь ???Проблемы с SPRING 3.0 аннотированный контроллер

Вот мой Ударно-сервлет

<bean Class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> 


<context:component-scan base-package="hibernateTest.web" /> 

<context:annotation-config/> 

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> 


<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
     p:prefix="/WEB-INF/jsp/" 
     p:suffix=".jsp" /> 

А вот мой контроллер

package springapp.web; 

import com.sun.msv.reader.Controller; 
import java.io.IOException; 
import java.util.HashMap; 
import java.util.Map; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.apache.commons.logging.LogFactory; 
import org.hibernate.validator.internal.util.logging.Log; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.portlet.ModelAndView; 
import springapp.service.ProductManager; 


@org.springframework.stereotype.Controller 

public class HelloController { 
protected final Log logger = (Log) LogFactory.getLog(getClass()); 
private ProductManager productManager; 


@RequestMapping("/hello.htm") 
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) 

     throws ServletException, IOException { 

    String now = (new java.util.Date()).toString(); 

    logger.info("returning hello view with " + now); 

    Map<String, Object> myModel = new HashMap<String, Object>(); 

    myModel.put("now", now); 

    myModel.put("products", this.productManager.getProducts()); 

    return new ModelAndView("hello", "model", myModel); 

}} 

Результат выполнения этого является 404, когда hello.jsp существует

ответ

0

Вашего контроллера класс находится в пакете springapp.web, а в context:component-scan у вас есть base-package, установленный в hibernateTest.web.

Весна не может определить ваш контроллер, потому что ваша конфигурация сообщает, что он ищет аннотированные классы только в пакете hibernateTest.web.

Изменение имени пакета в context:component-scan это исправить:

<context:component-scan base-package="springapp.web" /> 
+0

Ok я установил, что теперь ошибка говорит El prefijo "контекст" пункт эль Elemento "контекст: компонент сканирования" не está enlazado. И продолжает давать мне 404. Версия Spring - это 3.1 –

+0

Кажется, вам не хватает декларации пространства имен. Эта ошибка является контекстом «Префикс» контекста «для элемента»: компонент-сканирование «не связано» на английском языке - просто перейдите к нему и попробуйте один из ответов SO, который появится. –

Смежные вопросы