我是Spring MVC的新手,我有以下问题。
进入名为** HomeController 的类中的 home()控制器方法,我使用服务检索对象。此对象必须作为会话属性放置,以便可以从其他控制器类中的其他方法使用它。
所以我这样做了:
@Controller
@SessionAttributes({"progettoSelezionato"})
@PropertySource("classpath:messages.properties")
public class HomeController {
private static final Logger logger = Logger.getLogger(LoginController.class);
private @Autowired HomeService homeService;
@RequestMapping(value = "/home", method = RequestMethod.GET)
public String home(Model model) {
List<Tid023Intervento> listaInterventi = homeService.getListaInterventiRUP(18);
model.addAttribute("progettoSelezionato", listaInterventi.get(0));
model.addAttribute("listaProgettiRUP", listaInterventi);//TODO
return "home";
}
}
如您所见,我在课程级别使用了这个注释:
@SessionAttributes({"progettoSelezionato"})
然后我把这个对象放在:
model.addAttribute("progettoSelezionato", listaInterventi.get(0));
我不确定这是否正确,因为据我所知,这会将检索到的 listaInterventi.get(0)对象放入模型中,语音为 progettoSelezionato 。所以我绝对不确定它是否被推迟为 SessionAttributes 。
然后,此对象被推送为 SessionAttriibute 我必须检索并使用if从 gestioneDatiContabiliEnte()方法定义到另一个控制器类,所以我正在做这样:
@Controller
@SessionAttributes({"progettoSelezionato"})
@PropertySource("classpath:messages.properties")
public class GestioneDatiContabiliEnteController {
private static final Logger logger = Logger.getLogger(LoginController.class);
@RequestMapping(value = "/gestioneDatiContabiliEnte", method = RequestMethod.GET)
public String gestioneDatiContabiliEnte(Model model) {
System.out.println("INTO gestioneDatiContabiliEnte()");
System.out.println("PROGETTO SELEZIONATO: " + progettoSelezionato);
return "gestioneDatiContabiliEnte/gestioneDatiContabiliEnte";
}
}
但似乎无法正常工作,因为Eclipse在这一行上签了我的错误:
System.out.println("PROGETTO SELEZIONATO: " + progettoSelezionato);
错误是: progettoSelezionato无法解析为变量。
如何正确地将 listaInterventi.get(0)作为 SessionAttribute 添加到我的 HomeController 中?如何检索并将其用于 GestioneDatiContabiliEnteController 类中定义的 gestioneDatiContabiliEnte()方法?
答案 0 :(得分:0)
我自己,我可以通过以下方式访问此对象:
model.asMap().get("progettoSelezionato");