2016-06-24 127 views
0

我已經開始學習spring mvc,實踐中我開發了一個小應用程序,它使用jsp作爲其前端,並將spring mvc作爲其後端。基於Jsp的彈簧mvc休息mvc

現在我正試圖從基於jsp的應用程序轉移到基於REST的應用程序。我正在使用AngularJs和html作爲我的前端。現在我的目標是前端和後端只能通過REST進行通信。我的前端應用程序是一個多頁應用程序,從一個頁面導航到另一個頁面,我創建了超鏈接(href)。

但超鏈接不工作,因爲我總是得到一個404響應,所以我結束了寫一個邏輯較少的請求映射方法。

這是控制器

@Controller 
@RequestMapping("query/") 
public class QueryController { 
    @Autowired 
    private SpaceAccessorService spaceAccessorService; 

    @RequestMapping(value = "queryboard", method = GET) 
    public String queryBoard() { 
     return "query/queryboard"; 
    } 

    @RequestMapping(value = "TabbedSpaces", method = GET) 
    public String spaces() { 
     return "query/TabbedSpaces"; 
    } 

    @RequestMapping(value = "getListOfAllSpacesForGrid") 
    public 
    @ResponseBody 
    List<String> getListOfAllSpacesForGrid(@RequestParam String gridName) { 
     return spaceAccessorService.getAllSpacesForGrid(gridName); 
    } 
} 

這是我的servlet XML

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="location"> 
      <value>classpath:/config.properties</value> 
     </property> 
    </bean> 

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

我的印象是,如果我removew的ViewResolver我的HREF應該工作就像正常的HTML,但它總是返回404狀態。我想擺脫這些請求映射,它應該只是

+0

請澄清您的具體問題或添加其他詳細信息以突出顯示您需要的內容。正如目前所寫,很難確切地說出你在問什麼。請參閱如何問問頁面以獲取幫助以澄清此問題。 –

回答

0

工作,我想這個問題是ViewResolver的不提供靜態的HTML頁面,所有你需要做的就是增加你的HTML頁面像資源:

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

並使用angular或jsp將其包括到jsp中:include

+0

已經到位。但我的html頁面不在資源下,它們在WEB-INF/html/query /下。我會檢查在資源下工作與否,但這是否是正確的組織方式? –

+0

更改您的解析器到他的第一個狀態.jsp –

+0

它工作嗎? –