2015-06-19 13 views
6

Tôi đã viết một ứng dụng Spring MVC với nhiều bộ điều khiển.Mùa xuân 4: Cách ánh xạ các URL yêu cầu đối với bộ điều khiển cụ thể

Trên JSP, tôi có action trên biểu mẫu:

<form id="createTableForm" method="post" name="createTable" action="${pageContext.request.contextPath}/saveTable" > 

và hành động tương tự được ánh xạ tới một phương pháp trong điều khiển:

@Controller 
public class TableController implements TableConstants { 

    @RequestMapping(value="/saveTable") 
    public String saveTable(HttpServletRequest request,RedirectAttributes redirectAttributes) { 
    //... 
    } 
} 

Và trong tôi web.xml:

<context-param> 
    <description>Context name of the Application</description> 
    <param-name>contextName</param-name> 
    <param-value>W****</param-value> 
</context-param> 
<context-param> 
    <description>Database used for</description> 
    <param-name>databaseName</param-name> 
    <param-value>w*****</param-value> 
</context-param> 

<welcome-file-list> 
    <welcome-file>login.jsp</welcome-file> 
</welcome-file-list> 

<filter> 
    <filter-name>FilterChainProxy</filter-name> 
    <filter-class>com.abc.w****.configuration.FilterChainProxy 
    </filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>FilterChainProxy</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<session-config> 
    <session-timeout>1</session-timeout> 
</session-config> 


<jsp-config> 
    <taglib> 
     <taglib-uri>http://displaytag.sf.net</taglib-uri> 
     <taglib-location>/WEB-INF/tld/displaytag.tld</taglib-location> 
    </taglib> 
</jsp-config> 

Tôi có cần đưa ánh xạ URL vào Bộ điều khiển cụ thể đó trong tệp web.xml hoặc trong lớp WebAppConfig không?

Tôi có chú thích WebAppConfig với @Configuration, @ComponentScan và @EnableWebMVC. Nó có các phương pháp sau:

public UrlBasedViewResolver setupViewResolver() { 
} 
public MessageSource messageSource() { 
} 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
} 
public CommonsMultipartResolver multipartResolver() { 
} 

Vui lòng thông báo.

+0

Vì vậy, bạn muốn đạt được bộ điều khiển cụ thể đó cũng có ánh xạ URL riêng? –

+0

Tôi muốn biết cách tiếp cận chính xác như bây giờ lớp điều khiển của tôi chỉ là chú thích với chú thích @Controller. Vì vậy, chúng ta nên cung cấp ánh xạ URL tới lớp Controller và nối thêm ánh xạ đó vào hành động trong JSP cũng như với RequestMapping URL – user3403462

+0

đăng chú thích thêm servlet-config.xml –

Trả lời

1

Chú thích @RequestMapping có thể được áp dụng cho lớp bộ điều khiển. Trong trường hợp này tất cả các phương thức trong lớp này sẽ lấy được các giá trị mặc định từ chú giải lớp và việc thực hiện có thể ghi đè lên nó.

0

Có những điều vợ chồng bạn sẽ cần phải làm

  1. Trong web.xml cấu hình DispatcherServlet của Spring để đánh chặn các yêu cầu và chỉ đạo nó vào ví dụ Controllers.For để lập bản đồ DispatcherServlet để yêu cầu mà ở gốc, thêm các dòng sau

    <servlet> 
        <servlet-name>mvc-dispatcher</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    
    <servlet-mapping> 
        <servlet-name>mvc-dispatcher</servlet-name> 
        <url-pattern>/*</url-pattern> 
    </servlet-mapping> 
    
  2. Đảm bảo định nghĩa bean xml, bạn đã định cấu hình quét thành phần trên gói có bộ điều khiển để vùng chứa Spring có thể khám phá chúng.

+0

Không có anh chàng này đang sử dụng chú thích cho cấu hình, không cần sử dụng web.xml. Xem http://docs.spring.io/autorepo/docs/spring-framework/3.1.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html và thực hiện tương tự mà không cần web.xml. –

Các vấn đề liên quan