2015-06-19 15 views
6

Napisałem aplikację Spring MVC z wieloma kontrolerami.Wiosna 4: Jak mapować adresy URL RequestMapping do konkretnego kontrolera

Na JSP, mam action w formularzu:

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

i tego samego działania jest mapowany do sposobu w kontrolerze:

@Controller 
public class TableController implements TableConstants { 

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

iw moim 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> 

Czy muszę dołączyć mapowanie adresów URL do tego konkretnego kontrolera w pliku web.xml lub w klasie WebAppConfig?

Mam WebAppConfig z adnotacją @Configuration, @ComponentScan i @EnableWebMVC. Ma następujące metody:

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

Prosimy o radę.

+0

Więc chcesz osiągnąć ten konkretny kontroler ma również swoje własne mapowanie URL? –

+0

Chcę poznać poprawne podejście, ponieważ moja klasa Controller jest teraz adnotowana z adnotacją @Controller. Czy więc powinniśmy podać mapowanie adresu URL do klasy kontrolera i dołączyć to mapowanie do działania w JSP, a także adres URL żądania RequestMapping – user3403462

+0

opublikować swój serwlet-config.xml –

Odpowiedz

1

Adnotację @RequestMapping można zastosować do klasy kontrolera. W takim przypadku wszystkie metody w tej klasie wyprowadzą wartości domyślne z adnotacji klasy, a implementacja może go zastąpić.

0

Istnieje kilka rzeczy, które trzeba zrobić

  1. W web.xml skonfigurować Wiosny DispatcherServlet przechwycić żądanie i skierować ją na przykład Controllers.For mapować DispatcherServlet do wniosków, że u nasady, dodać następujące linie

    <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. Upewnij w xml definicji fasola, skonfigurowaniu skanowania komponentu na opakowaniu, które ma swoje sterowniki tak, że wiosna pojemnik może je odkryć.

+0

Nie ten facet używa adnotacji do konfiguracji, nie ma potrzeby korzystania z pliku web.xml. Spójrz na http://docs.spring.io/autorepo/docs/spring-framework/3.1.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html i zrób to samo bez web.xml. –

Powiązane problemy