前幾天我問過這個問題,但現在出現了一個新問題。我的網頁需要訪問這些網址:春天 - 映射多個網址模式
/product/* //(this will be an id or anything else)
/shopcart/* //(GET, ADD...)
/*.html
我必須訪問不同的HTML頁面以獲得一些webapp信息。在webapp上,你可以通過id
索取一些產品,你可以看到一個詳細的網頁和他的所有規格。另外,我有一個購物車,您可以在其中添加產品,每次添加產品時都會在服務器會話中保存。
如果我想恢復有關購物車中產品的信息,我訪問/shopcart/get
並將所有信息轉換爲JSON格式。我有這個配置到我的web.xml爲:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/product/*</url-pattern>
<url-pattern>/shopcart/*</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
的問題就來了,我可以訪問/product/1
從產品1
得到的所有規格,但我得到同樣的,如果我使用/shopcart/1
。如果我在我的控制器中指定了@RequestMapping("product")
(例如),我將不得不訪問/product/product/1
,我不希望這樣。我該如何解決這個問題?
這些都是我的控制器:
@Controller
public class ProductController {
@RequestMapping("{id}")
public ModelAndView get(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, @PathVariable String id) {
Map<String, Object> model = new HashMap<String, Object>();
//data recovering
return new ModelAndView("product", model);
}
}
@Controller
public class CartController {
@Autowired
private JacksonConverter JacksonConverter;
@RequestMapping(value = "/shopcart/get", method = RequestMethod.GET)
public void get(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
// data recovering
httpServletResponse.setContentType("application/json; charset=utf-8");
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
httpServletResponse.getWriter().print(json);
}
}
將調度程序映射到'/'並使用註釋映射每個控制器/方法到它們的url(s) – 2014-02-21 18:37:22
我很失望:/我試圖找到一種方法來解決我的配置問題,當最簡單方式一直在那裏,但現在我無法訪問我的CSS和JS資源:S,它們不在我的'WEB-INF'中 – DaGLiMiOuX