2011-08-10 2 views
2

컨트롤러 :자바, 스프링, 아파치 타일 오류 : 이름을 가진 서블릿의 이름을 '접촉' '봄'과 함께보기를 확인할 수 없습니다

<tiles-definitions> 
    <definition name="base.definition" 
     template="/WEB-INF/jsp/layout.jsp"> 
     <put-attribute name="title" value="" /> 
     <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" /> 
     <put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" /> 
     <put-attribute name="body" value="" /> 
     <put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" /> 
    </definition> 

    <definition name="contact" extends="base.definition"> 
     <put-attribute name="title" value="Contact Manager" /> 
     <put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" /> 
    </definition> 

이 내 tiles.xml입니다

@Controller 
@SessionAttributes 
public class ContactController { 

    @RequestMapping(value = "/addContact", method = RequestMethod.POST) 
    public String addContact(@ModelAttribute("contact") 
          Contact contact, BindingResult result) { 

     System.out.println("First Name:" + contact.getFirstName() + 
       "Last Name:" + contact.getLastName()); 

    return "redirect:contacts.html"; 
    } 

    @RequestMapping("/contact") 
    public ModelAndView showContacts() { 

     return new ModelAndView("contact", "command", new Contact()); 
    } 
} 

org.apache.jasper.JasperException: javax.servlet.ServletException: Could not resolve view with name 'contact' in servlet with name 'spring' 
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:584) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

더 이상 소스 코드

을 요청하는 주시기 바랍니다 : 오류가 이것이다

답변

5

last question에서 pre와 suffix가있는 UrlBasedView Resolver를 사용하는 것으로 나타났습니다.

해당 사전 및 확장자를 제거하십시오.

가 enogth되어야한다 : BTW

<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" 
    id="tilesViewResolver"> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.tiles2.TilesView" /> 
</bean> 
<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" 
    id="tilesConfigurer"> 
    <property name="definitions"> 
     <list> 
      <value>/WEB-INF/layouts/layouts.xml</value> 
      <!-- Scan views directory for Tiles configurations --> 
      <value>/WEB-INF/views/**/views.xml</value> 
     </list> 
    </property> 
</bean> 

이 configruation이

  • /WEB-INF/layouts/layouts.xml에 포함 된 타일 구성 파일의 두 tzps (단지 거기 sermatic 다릅니다) allowes 모든 (전화를 할 수 있습니다 그것) "기본 정의"
  • /WEB-INF/views/**/views.xml cont "기본 정의"(예 : "연락처"정의)를 확장하는 구체적인 정의 - 각 폴더마다 별도의 view.xml을 가질 수 있습니다. -보기를 그룹화하는 경우 유용합니다 (예 : 모든보기 (작성, 업데이트 이 기능을 필요로하지 않는 경우의 separete 폴더의 각 엔티티, 쇼 목록),

, 단순히 그 라인을 제거합니다.

+0

굉장! 고마워, 젠장, 내가 viewresolver에 대한 JSTL을 사용하는 데 사용되는 JSTL은 그 접두사와 접미사가 필요했습니다 ..하지만 지금은이 타일 일을 시도, 그것은 일했습니다! – Jaanus