2013-06-26 6 views
0

HttpServlet이 있습니다. 사용자를 다른 JSP 페이지로 리디렉션합니다. 사용자가 원하는 작업에 따라 다릅니다. 예 : http://localhost:8080/collections/index.do은 index.jsp로 리디렉션됩니다. 나는 액션 이름을 가져올 수) 1 - - 사용자가 브라우저에서 이전 URL을 쓸 때 다른 조치는 나는이사용자 지정 jsp 페이지로 리디렉션

<component-instance key="index"> 
    <com.epam.collections.web.IndexAction/> 
</component-instance> 

처럼 picocontainer 유지 index

String name = getActionName(req); 

2) picocontainer의 조치를 받기

Action action = (Action) pico.getComponentInstance(name); 

3) 작업 수행 - JSP 페이지 이름을 나타내는 문자열 반환

String view = action.exec(req, resp); 

간부 인 방법은 내가 picocontainer의 행동이 없을 때 페이지 notfound.jsp에 사용자를 전달할

public String exec(HttpServletRequest req, HttpServletResponse resp) { 
    return "index"; 
} 

4) 앞으로 사용자

getServletContext().getRequestDispatcher(
      "/WEB-INFO/pages/" + view + ".jsp").forward(req, resp); 

index.jsp page에입니다. 예를 들어 blabla.donotfound.jsp 페이지를 반환해야합니다. 나는이

if (action == null) { 
     getServletContext().getRequestDispatcher(
       "/WEB-INF/jsp/notfound.jsp").forward(req, resp); 
     return; 
    } 

getComponentInstance 때문에 반환 null을 같이 할 때 작업은 XML 파일에 존재하지 않는 경우 - 내가있어 오류가 나는 .do없이 STH를 쓸 때 500

이 또한 내가 해당 페이지로 리디렉션 할 조금도. 예를 들어 ddd.dd, plain 등.하지만 404 오류가 발생했습니다.

답변

0
) 당신이 500 ERR있어) web.xml을 2 404 처리기 설치에 필요한 404 오류를 처리하기 위해, 원인은 아마 무언가가 당신의 JSP 페이지에 대한 잘못된 1, 당신은 JSP 코드를 확인해야

주의 깊게 3) 방법 당신은 피코를 사용합니다 반 패턴은 피코 문서를 확인하십시오