학생에서탈출
58
2020-01-21 00:26:45
5
362

Spring으로 개발해보려는 학생인데, 404에러 부탁드립니다ㅠㅠ


web.xml

       <servlet>
		<servlet-name>appServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
		
	<servlet-mapping>
		<servlet-name>appServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

servlet-context.xml
	<resources mapping="/resources/**" location="/resources/" />

	<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<beans:property name="prefix" value="/WEB-INF/views/" />
		<beans:property name="suffix" value=".jsp" />
	</beans:bean>
	
	<context:component-scan base-package="com.junsoo.shopping" />
\com\junsoo\shopping\common\controller\login\LoginController.java
@Controller
@RequestMapping(value = "/contents")
public class LoginController {

	@RequestMapping(value = "/login", method = RequestMethod.POST)
	public ModelAndView login() {
		
		ModelAndView mv = new ModelAndView();
		mv.setViewName("loginPage");
		return mv;
	}
}
\webapp\WEB-INF\views\header\header.jsp
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
    <ul class="myMenu navbar-nav">
        <li class="myMenu-li nav-item"><a class="nav-link" href="${contextPath}/login/loginPage.jsp">로 그 인</a></li>
    </ul>


header.jsp 의 로그인 버튼클릭 ->

\webapp\WEB-INF\views\contents\login\loginPage.jsp 페이지 이동을 원하지만 아래의 404에러가 뜹니다.


Type Status Report

Message /login/loginPage.jsp

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.


스프링 걸음마 시작한 초보입니다.

기초적인 에러이지만 몇 시간째 해결이 되지않아 도움요청합니다ㅠㅠ (살려주세요 선배님들)


0
  • 답변 5

  • minarai
    2k
    2020-01-21 08:43:56

    컨트롤러에 리턴페이지값을
    contents/loginPage로 해보세요

  • 두유콩
    2020-01-21 08:50:51 작성 2020-01-21 08:52:26 수정됨

    컨트롤러 return  페이지를 "contents/login/loginPage"로 바꾸셔야 할거같아요.

  • 구구네
    47
    2020-01-21 17:55:37

    로그인 버튼 링크가

    login/loginPage.jsp -> login/loginPage.do 로 해보실래요?

  • 학생에서탈출
    58
    2020-01-21 23:02:56

    minarai 

    두유콩 
    구구네 

    답변 감사합니다.

    세가지 알려주신 것으로 고쳐보아도 에러가 맵핑 에러가 나네요..

    WARN : org.springframework.web.servlet.PageNotFound - No mapping for GET  /contents/login/loginPage

    프로젝트 프로퍼티 - 컨텍스트 루트도 / 로 설정했는데 
    어디가 문젠지 좀 찾아봐야겠어요..

  • 학생에서탈출
    58
    2020-01-21 23:14:58

    해결했습니다..


    header.jsp

    <c:set var="contextPath" value="${pageContext.request.contextPath}" />
        <ul class="myMenu navbar-nav">
            <li class="myMenu-li nav-item"><a class="nav-link" href="${contextPath}/contents/login/loginPage.jsp">로 그 인</a></li>
        </ul>


    LoginController.java

    @Controller
    @RequestMapping(value = "/contents")
    public class LoginController {
            //RequestMethod.GET 으로 설정시,[org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported] 에러발생
    	@RequestMapping(value = "/login/loginPage", method = RequestMethod.POST)
    	public ModelAndView login() {
    		
    		ModelAndView mv = new ModelAndView();
    		mv.setViewName("contents/login/loginPage");
    		return mv;
    	}
    }


    컨트롤러에 클래스에 있는 리퀘스트맵핑 /contents

                      메소드에 있는 리퀘스트 맵핑 /login

                      뷰네임 /loginPage

    로 설정하면 /contents/login/loginPage로 설정되어서 찾을 줄 알았는데 아니였군요..

    덕분에 공부되었습니다! 감사합니다!






  • 로그인을 하시면 답변 을 등록할 수 있습니다.