2014-09-04 149 views
1

我在春天的Web应用程序使用工作作为thymeleaf的解析器最近,和我的深化发展控制器时,我面临着新的形势:@PathVariable春季控制器

我真的不知道这件事,但是能从视图传递的@Pathvariable是一个对象? (一个模型的复合键是精确的?)

我以前使用过ids,但大多数都是简单的int ids,我只想知道传递一个对象(这是我的对象的主键)是可能的,而不是简单的int ID?

,并感谢您

+0

我想你可以......唯一的问题是你将不得不告诉春天如何将字符串值(路径值将一个字符串右)到对象...春天使用属性编辑器(通过initBinder)来做到这一点......所以你可以注册一个新的属性编辑器,它可以做转换,那么它应该是可能的 – 2014-09-04 03:23:34

回答

1

你可以使用Spring属性编辑器或Spring转换器看到Spring Convertor

例如

public class CategoryConverter implements Converter<String, Category>{ 

@Autowired 
private CategoryService categoryService; 

public Category convert(String id) { 
    return categoryService.findById(Long.valueOf(id)); 
} 
} 

而是直接保存对象时,数据库可能会遇到一些问题。

+0

我明白你的观点,但问题是我的模型有一个conpound主键,这意味着,要找到整个对象,我需要两个变量,而不是像你放置的例子那样。我不太明白在哪里使用这个转换器:在控制器中? – Aissasa 2014-09-04 11:18:39