2014-01-25 3 views
0

Spring MVC 아키텍처를 따라 가면서 모든 JSP 용 컨트롤러가 있어야합니다. 예를 들면. aboutUs 또는 PrivatePolicy 또는 faqs JSP 페이지 (정적 데이터가있는 페이지)에 대한 컨트롤러가 있어야합니까? 다음 페이지를 가리키는 하이퍼 링크를 가질 수 있습니까?내가 갖고있는 모든 JSP 페이지마다 컨트롤러가 있어야합니까?

+0

하나의 컨트롤러에서 여러 개의 jsp를 제어 할 수 있습니다. –

+0

은 머리글/바닥 글에 컨트롤러가 하나 있어야한다고 말하고 있습니까? – v0ld3m0rt

+0

논리적 뷰당 하나의 컨트롤러가 있어야합니다. 예를 들어, 이것이 usermanagement 모듈 인 경우 여러 개의 JSP (생성, 편집, 검색, 삭제)를 가질 수 있으며, 각각의 뷰와 데이터를 제어하는 ​​하나의 컨트롤러를 가질 수 있습니다. –

답변

0

당신은 봄 XML의 설정 또는 Java 설정 중 하나에서 다음을 수행 할 수 있습니다, 나는 자바 설정을 선호 :

다음 JSP 파일 것이다 당신의/WEB-INF/뷰 디렉토리에 다음
@Configuration 
@EnableWebMvc 
@EnableAspectJAutoProxy(proxyTargetClass = true) 
public class WebHomeConfig extends WebMvcConfigurerAdapter implements 
    ApplicationContextAware { 

    private ApplicationContext _appContext; 


    /* 
    * (non-Javadoc) 
    * 
    * @see 
    * org.springframework.context.ApplicationContextAware#setApplicationContext 
    * (org.springframework.context.ApplicationContext) 
    */ 
    @Override 
    public void setApplicationContext(ApplicationContext appContext) 
     throws BeansException { 
    _appContext = appContext; 
    } 

    @Bean 
    public ViewResolver getViewResolver() { 
    InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
    resolver.setPrefix("/WEB-INF/views/"); 
    resolver.setSuffix(".jsp"); 
    return resolver; 
    } 


    /** 
    * Since we don't have any controller logic, simpler to just define 
    * controller for page using View Controller. Note: had to extend 
    * WebMvcConfigurerAdapter to get this functionality 
    * 
    * @param registry 
    */ 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("home"); 
    registry.addViewController("/about").setViewName("aboutUs"); 
    registry.addViewController("/privacy").setViewName("privacyPolicy"); 
    } 
} 

:

<baseURL>/ => home.jsp 
<baseURL>/about => aboutUs.jsp 
<baseURL>/privacy => privacyPolicy.jsp 

희망 : 여기

./home.jsp 
./aboutUs.jsp 
./privacyPolicy.jsp 

다음 URL을 타격 할 때 다음 얻을 것이다 JSP 페이지입니다 그 질문에 대한 답변.

0

컨트롤러 및 JSP는 거의 동일하지 않습니다. 종종 하나의 컨트롤러가 여러 JSP에서 하나의 "렌더링"을 조정하는 일대 다 관계입니다. JSP는 궁극적으로 서블릿이며 응답을 렌더링하기 위해 다른 서블릿 또는 JSP (또는 디스패치 또는 FilterChain 사용)를 포함 할 수 있습니다.

관련 문제