2016-04-19 9 views
1

私はこれらの2つの方法では、このサーブレット・マッピング春のservlet-mapping/URLパターン

<servlet-mapping> 
     <servlet-name>devicesWeb</servlet-name> 
     <url-pattern>*.do</url-pattern> 
     <url-pattern>/device-catalogue</url-pattern> 
     <url-pattern>/device-catalogue/</url-pattern>     
     <url-pattern>/device-catalogue/*</url-pattern> 
     <url-pattern>/search/search.do</url-pattern> 
</servlet-mapping> 

を持っている:

@RequestMapping(value = "/device-catalogue", method = RequestMethod.GET) 
     private String initForm(@ModelAttribute("searchForm") final SearchForm searchForm, 
           BindingResult result, HttpServletRequest request, Model model, Locale locale) { 

      sessionHelper.checkSessionAttributes(request, locale); 
      return SEARCH_VIEW; 
     } 


@RequestMapping(value = { "/search/showProductDetails.do", "/device-catalogue/{id}" }, method = { RequestMethod.GET, RequestMethod.POST }) 
    private String showProductDetails(@ModelAttribute("searchForm") final SearchForm searchForm, 
           HttpServletRequest request, Model model, Locale locale) { 

     StringTokenizer st = new StringTokenizer(StringEscapeUtils.escapeHtml(searchForm.getItemId()),"="); 

     if (st.countTokens()>1) { 

      String awardId=st.nextToken(); 
      String id=st.nextToken(); 

      Item item = deviceService.getItemByAwardId (Long.parseLong(id), awardId); 

      normalizeWebsiteURL (item); 

      orderCountriesAvailability(item.getCountriesAvailability(), locale); 

      model.addAttribute("item", encodeItemForHTML(item));  
     } 
     return PRODUCT_DETAIL_VIEW; 
    } 

このURLは正常に動作します:

http://127.0.0.1:7001/eDevices/device-catalogue

をしかし、この1つではありません(私は404を持っています)!私はweb.xmlに以下を追加した場合

http://127.0.0.1:7001/eDevices/device-catalogue/16720

は、それは、URLごとに<url-pattern>を書いてはいけません

<url-pattern>/product-catalogue/16720</url-pattern> 

答えて

1

に動作します。スプリングのmvc(DispatcherServlet)のフロントコントローラを使用して、すべてのアプリケーション要求を処理します。

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
</servlet> 

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

とその横にdispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> 

    <context:component-scan base-package="com.test" /> <!-- specify your base package instead of "com.test" --> 

    <mvc:annotation-driven /> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
      <property name="prefix" value="/WEB-INF/views/" /> 
      <property name="suffix" value=".jsp" /> 
      <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
    </bean> 

    <mvc:resources mapping="/resources/**" location="WEB-INF/resources/" /> <!-- Not necessary but it's nice to address resources(css, images, etc) like this --> 

</beans> 
+0

MMM .....これをやって、それが私ドンと思われるごweb.xmlであなたのようなものを必要とする、ことを行うために

+1

あなたの 'WEB-INF'に、' resources'フォルダを作成してください。その中にCSS、画像、フォントなどのフォルダを作成します。今、jspページでこれらのリソースを使用したいときはいつでも、jstlの 'c:url'タグを使います。たとえば、画像を表示すると、 '"> ' –

関連する問題