Tôi đang sử dụng Spring 3.0.5 với các chú thích <context:component-scan>
và @RequestMapping
trên bộ điều khiển của mình. Thao tác này và URL được đăng ký bằng quét gói.<context: component-scan> không chọn @RequestMappings của tôi nếu ánh xạ xử lý được xác định trong XML
Nhưng có một vấn đề khi tôi có một ánh xạ xử lý được xác định trong cấu hình XML. Chú thích @RequestMapping
không còn được chọn nữa.
Tôi đã phân tách sự cố thành một ứng dụng đơn giản.
Nếu tôi có bộ điều khiển sau:
package test.pack.age;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping(value="/test")
public String showTestPage() {
return "testPage";
}
}
và cấu hình như sau:
<context:component-scan base-package="test.pack.age" />
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
Ứng dụng này hoạt động chính xác và URL /test
được đăng ký và hoạt động đúng.
18/09/2011 20:02:55 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping INFO Mapped URL path [/test] onto handler 'testController'
18/09/2011 20:02:55 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping INFO Mapped URL path [/test] onto handler 'testController'
Nhưng nếu tôi thêm ánh xạ xử lý vào XML, nó sẽ không hoạt động nữa. Ngay cả một cái gì đó đơn giản như thế này:
<bean id="handlerMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" />
mà về cơ bản không có gì, và <context:component-scan>
không còn đăng ký URL của tôi nữa.
Tôi cần một ánh xạ xử lý bổ sung cho một số bộ điều khiển (bên thứ ba) mà tôi không thể chú thích, nhưng khi thêm nó sẽ phá vỡ tất cả các @RequestMapping
s của tôi.
Điều này có bình thường không? Một lỗi? (Tôi không thể thay đổi phiên bản Spring)
Tôi có thiếu gì đó không?