有關類型級別通配符請求映射和從void和域對象返回派生的Springs邏輯視圖名稱的問題。說我有以下Spring 3.1類型級別RequestMapping和邏輯視圖名稱
@Controller
class HomeController
{
@RequestMapping(value="/")
public void index() {}
}
我的如何泉邏輯視圖名稱生成的理解是,上述控制器將映射「/」到邏輯視圖名稱「索引」,我然後可以,例如,使用Apache瓷磚匹配一個適當的jsp視圖。
同樣,這說明我的溫泉邏輯視圖名稱創建的理解(但我覺得我失去了一些東西......)
@Controller
@RequestMapping("/collection/*")
class CollectionController
{
@Autowired
private SomeService someService;
@RequestMapping(method=RequestMethod.GET)
public List<Item> list()
{
// in my understanding
// itemList should be available in the model (via generated name),
// that the logical view name generated should be
// collection/list and that this method
// would intercept the url "/collection/" or "/collection"
return someService.getItems();
}
@RequestMapping("/{itemId}")
public Item item (@PathVariable final String itemId)
{
// similiarly, item should be available in the
// model and the logical view name should be
// collection/item
return someService.getItem(itemId);
}
}
事情是,是該列表方法不會被解析爲「索引「集合的頁面 - 相反,邏輯視圖名稱似乎是」集合「(我沒有定義 - 我希望邏輯視圖名稱爲」集合/列表「。」項目「方法的作品 - 它只是索引頁沒有 - 爲模糊的問題感到抱歉 - 不知道該怎麼說 -
我如何利用Springs邏輯視圖名稱生成fr om方法名稱基於類型級別的通配符url而不返回字符串來定義邏輯視圖名稱?以上所述不符合我的預期。我錯過了什麼?
UPDATE:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter
{
static private String [] TILES_DEFINITIONS= new String [] { "/WEB-INF/layouts/tiles.xml", "/WEB-INF/views/**/tiles.xml"};
/* static resource resolution */
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
{
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
/**
* ViewResolver configuration required to work with Tiles2-based views.
*/
@Bean
public ViewResolver viewResolver()
{
UrlBasedViewResolver viewResolver= new UrlBasedViewResolver();
viewResolver.setViewClass(TilesView.class);
return viewResolver;
}
/**
* Configures Tiles at application startup.
*/
@Bean
public TilesConfigurer tilesConfigurer()
{
final TilesConfigurer configurer= new TilesConfigurer();
configurer.setDefinitions(TILES_DEFINITIONS);
configurer.setCheckRefresh(true);
return configurer;
}
}
我的瓷磚文件夾結構
src/main/webapp/layouts (contains base page.jsp)
和
src/main/webapp/views/[VIEWNAME]/tiles.xml
viewname表示視圖名稱(對不起!),並查看的路徑該視圖名稱在該文件夾tiles.xml中定義。希望讓事情更清晰......
能否請你告訴您如何配置視圖解析器來呈現你的看法。看到我能回答一些問題。 –
你去日本了 - 希望有幫助,謝謝! – VLostBoy