2012-03-01 41 views
9

Morning,Spring MVC - Bản đồ điều khiển để rễ ngữ cảnh (/) trong khi sử dụng MVC: nguồn

Có vấn đề ánh xạ một bộ điều khiển để/(tức là localhost: 8080/someApp/sẽ lập bản đồ để @Controller ("/")) trong khi cũng sử dụng MVC: nguồn

web.xml lập bản đồ:

<servlet-mapping> 
    <servlet-name>springServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 

MVC: nguồn

<mvc:resources mapping="/resources/**" location="/resources/" /> 

Các máy chủ tải trang một cách chính xác, nhưng khi tôi lập bản đồ cho một ví dụ tài sản

<link type="text/css" rel="stylesheet" href="<c:url value="/resources/css/blueprint/print.css"/>" /> 

Khi nhấp file css qua xem mã nguồn trong một trình duyệt web, phản ứng máy chủ xạ ngược trở lại trang danh mục, chứ không phải là nguồn. Dẫn tôi tin rằng nó liên quan đến việc lập bản đồ servlet.

Bất kỳ trợ giúp nào về điều này đều tuyệt vời!

Cảm ơn!

Edit: Quên đề cập đến, nếu tôi gắn bộ điều khiển để nói:

@Controller("/pages") 

Tất cả mọi thứ hoạt động tốt, chỉ cần thà có gốc bối cảnh có thể đáp ứng một cách chính xác.

+0

môi trường của bạn là gì? AFAIK Weblogic, ví dụ yêu cầu ánh xạ mime rõ ràng của css trong web.xml css văn bản/css

+0

Đã giải quyết được vấn đề sẽ cập nhật bài đăng, sự cố lạ. – dardo

+0

reupdated bài đăng để hiển thị lý do tại sao – dardo

Trả lời

7
@Controller("/) 

@RequestMapping("/") 

không phải là những điều tương tự.

Vì @RequestMapping có thể được đặt ở cấp lớp, việc đặt ánh xạ lên lớp sẽ có ảnh hưởng mong muốn.

Ví dụ:

@Controller 
@RequestMapping("/") 
public class RootController 
{ 

    @RequestMapping(method=RequestMethod.GET) 
    public String index() 
    { 
    return "index"; 
    } 

} 

này sẽ làm việc một cách chính xác, và cũng có thể làm việc với MVC: đậu nguồn lực.

+0

Thật không may ở trên không làm việc cho tôi (mùa xuân 4.3.1). Bất kỳ ý tưởng nào khác? –

+0

Nó sẽ vẫn hoạt động, tôi đoán là bộ điều khiển không được chọn do quét thành phần tìm kiếm trong các gói sai, hoặc không có quét thành phần nào cả. @Controller chỉ là siêu dữ liệu được Spring sử dụng để biểu thị cho việc quét thành phần mà nó có sẵn để nối dây như một bean. Nếu bạn không sử dụng quét thành phần, bạn cần phải nối dây thủ công. – dardo

0

đưa dòng này trong MVC-phối-servlet.xml

<bean name="/" 
     class="com.springapp.mvc.HelloController" /> 

nó sẽ làm việc.

lập bản đồ trong web.xml

<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
Các vấn đề liên quan