2016-12-31 95 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方法的返回类型,现在它返回的字符串(这是在Apache的瓷砖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"; 
    } 
} 

而且我的Apache 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的视图名称是insuranceCompany

mv.addObject("insuranceCompany" ... 

所以瓷砖的名字是insuranceCompany了。 (没有任何斜线和大写“C”)