WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/home] in DispatcherServlet with name 'action'
기능추가 : 메인페이지 이동
오류원인 : 경로설정오류
>기존코드
>top.jsp
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li class="active">
<a href="javascript:onClickHome();">Home</a>
</li>
>common.js
onClickHome = function() {
location.href="/home";
}
>controller
@RequestMapping(value="/", method= RequestMethod.GET)
public ModelAndView home(Paramcollector inParams) {
ModelAndView mav = new ModelAndView();
mav.setViewName("/");
return mav;
}
>해결방안
이미 root경로를 설정하였고 이 root가 index페이지의 경로이기 때문에 따로 controller를 이용하여 설정할 필요가 없었다.
web.xml에 /로 패턴이 적용되었을 경우 action-servlet.xml이 적용된다.
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
action-servlet.xml에서 jsp경로를 미리 설정해주었음...
<beans:bean
class="org.springframework.web.servlet.view.UrlBasedViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView" p:order="1"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
server.xml 에서 path경로를 "/"하였을 경우 아래와 같이 href를 설정하면 index.jsp로 이동한다.
<Context docBase="timekeeper" path="/" reloadable="true" source="org.eclipse.jst.jee.server:timekeeper"/>
>common.js
onClickHome = function() {
location.href="/";
}
기능추가 : .js파일 include
오류원인 : 예외처리오류
예외처리하는 이유는 action-servlet.xml에서 url pattern을 "/"로 적용하여 이를 사용할 경우 dispatcherservlet에서 mapping할 controller를 찾게 된다. 때문에 include하여 resource로 사용하려는 파일 같은경우 action-servlet.xml에서 mapping처리(예외처리)를 하여야 한다.
기존
>action-servlet.xml
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
<mvc:resources location="/images/" mapping="/images/**"></mvc:resources>
오류해결
>action-servlet.xml
<mvc:resources location="/css/" mapping="/css/**"></mvc:resources>
<mvc:resources location="/js/" mapping="/js/**"></mvc:resources>
<mvc:resources location="/images/" mapping="/images/**"></mvc:resources>
>bottom.jsp
<script src="/js/common.js"></script>
728x90
반응형
댓글