2016-12-31 5 views
0

저는 (내보기를 관리하기 위해) Spring과 Apache Tiles를 사용하고 있습니다. 컨트롤러 클래스가 있습니다 :중첩 된 @RequestMapping - Apache Tiles보기에서 어떻게 작동합니까?

@Controller 
@RequestMapping("/insurancecompany") 
public class InsuranceCompanyController { 

    @Autowired 
    private InsuranceCompanyService insuranceCompanyService; 

    @RequestMapping("/create") 
    public ModelAndView createInsuranceCompany() { 
     ModelAndView mv = new ModelAndView(); 
     mv.addObject("insuranceCompany", new InsuranceCompany()); 
     return mv; 
    } 

제대로 작동하려면 Apache Tiles xml 파일에 무엇을 써야합니까? 내 xml 파일

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE tiles-definitions PUBLIC 
     "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
     "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 

<tiles-definitions> 

    <definition name="main.template" template="/WEB-INF/templates/maintemplate.jsp"> 
     <put-attribute name="title" value="Welcome on my web app" /> 
     <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp" /> 
     <put-attribute name="body" value="" /> 
    </definition> 
    ... 
    <definition name="WHAT SHOULD BE HERE??" extends="main.template"> 
     <put-attribute name="title" value="Insurance Company" /> 
     <put-attribute name="body" value="/WEB-INF/tiles/createinsurancecompany.jsp" /> 
    </definition> 

</tiles-definitions> 

답변

0

컨트롤러 클래스를 변경했습니다. 내 createInsuranceCompany 방법의 반환 형식을 교체하고 지금은 문자열 (아파치 타일 XML 파일에 사용되는 고유 이름)

@Controller 
@RequestMapping("/insurancecompany") 
public class InsuranceCompanyController { 

    @Autowired 
    private InsuranceCompanyService insuranceCompanyService; 

    @RequestMapping("/create") 
    public String createInsuranceCompany(Model model) { 
     model.addAttribute("insuranceCompany", new InsuranceCompany()); 
     return "insurancecompany-create"; 
    } 
} 

를 돌려 내 아파치 XML 파일이

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE tiles-definitions PUBLIC 
     "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 
     "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 

<tiles-definitions> 

    <definition name="main.template" template="/WEB-INF/templates/maintemplate.jsp"> 
     <put-attribute name="title" value="Welcome on my web app" /> 
     <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp" /> 
     <put-attribute name="body" value="" /> 
    </definition> 

    ... 

    <definition name="insurancecompany-create" extends="main.template"> 
     <put-attribute name="title" value="Insurance Company" /> 
     <put-attribute name="body" value="/WEB-INF/tiles/createinsurancecompany.jsp" /> 
    </definition> 

</tiles-definitions> 
처럼 보인다
0

반환 ModelAndView의 뷰 이름은

mv.addObject("insuranceCompany" ... 

insuranceCompany 그렇게 타일 이름이 너무 insuranceCompany입니다. (슬래시 및 대문자 "C"없음)

관련 문제