@SessionAttributes注解也是一个在应用常常需要使用的一个注解,虽然使用并不是很频繁,下面,就来看看其简单的使用吧。
@SessionAttributes意义在于可以使我们有选择的将一些对象当做属性,注册到HttpSession当中去,该注解只能用于类。
首先来看下其属性说明:
- value属性,存储在Session当中的属性名称,默认属性。String[]类型。
- types属性,绑定参数的类型。Class<?>[]类型。
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.df.test.pojo.Customer;
import com.df.test.service.ICustomerService;
@Controller
@SessionAttributes("user")//将Model 中属性名为user的属性,放进HttpSession当中
public class UserController {
@Resource
private ICustomerService customerService;
@RequestMapping("/showUser1/{useId}")
public String toIndex(@PathVariable String useId, Model model) {
Customer customer = this.customerService.getUserById(Integer.parseInt(useId));
model.addAttribute("user", customer);//将user添加到Model当中,用该函数添加的属性,默认进入视图的requestScope作用域中,因为@SessionAttributes注解的缘故,此时视图的sessionScope作用域也存在user对象。
return "showUser";
}
}
单个属性添加到HttpSession中:
@SessionAttributes(types={Customer .class},value = "customer ")
多个属性添加到HttpSession中:
@SessionAttributes(types={Customer .class,User},value = {"customer ","user"})