본문 바로가기
Error

[Error]org.springframework.web.servlet.PageNotFound(DispatcherServlet 오류)

by 김뚱 2018. 6. 24.

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
반응형

댓글