我是Spring MVC的新手,我对如何正确完成以下任务抱有以下疑问。
我正在开发一个实现用户注册过程的Web应用程序。这个注册过程分为几个连续的步骤。
例如,在第一步中,用户必须插入识别码(它是在某些统计管理系统上唯一标识用户的代码),在第二步中,它必须为他的个人数据编译表格(名称) ,姓氏,出生日期等。)
所以,实际上我有以下控制器类来处理这些步骤:
@Controller
public class RegistrazioneController {
@Autowired
private LoadPlacesService loadPlacesService;
@RequestMapping(value = "/iscrizioneStep1")
public String iscrizioneStep1(Model model) {
return "iscrizioneStep1";
}
@RequestMapping(value = "/iscrizioneStep2", method=RequestMethod.POST)
public String iscrizioneStep2(Model model, HttpServletRequest request, @RequestParam("cf") String codicFiscale) {
System.out.println("INTO iscrizioneStep2()");
//String codicFiscale = request.getParameter("cf");
System.out.println("CODICE FISCALE: " + codicFiscale);
model.addAttribute("codicFiscale", codicFiscale);
return "iscrizioneStep2";
}
@RequestMapping(value = "/iscrizioneStep3", method=RequestMethod.POST)
public String iscrizioneStep3(@ModelAttribute("SpringWeb")Step2FormCommand step2Form, ModelMap model, HttpServletRequest request) {
System.out.println("INTO iscrizioneStep3()");
System.out.println("NOME: " + step2FormCommand.getName());
return "iscrizioneStep3";
}
进入 iscrizioneStep2(),检索第一个代码( @RequestParam(“cf”)String codicFiscale )。
在 iscrizioneStep3()中检索一个命令对象,其中包含插入到提交此表单的视图形式的数据,这一个:
@ModelAttribute("SpringWeb")Step2FormCommand step2FormCommand
工作正常。
现在我的问题是我有另一个名为 Step3View 的对象,必须使用 @RequestParam(“cf”)String codicFiscale 对象的聚合进行初始化 iscrizioneStep2()方法和 @ModelAttribute(“SpringWeb”)Step2FormCommand step2FormCommand 检索到 iscrizioneStep3()方法。
此 Step3View 类只包含 String codicFiscale 以及 Step2FormCommand 类的所有字段。
现在我怀疑的是:处理这种情况的最佳方法是什么?我在哪里声明这个 Step3View 对象?在控制器级别? (所以我可以在我的所有控制器方法中使用它?)。我是否要用 @Component (或类似的东西)注释这个类,将它注入我的控制器?
这种情况的最佳解决方案是什么?
答案 0 :(得分:1)
我认为,为了得到答案,您需要了解问题并提出正确的问题。我认为您的问题是“如何在SpringMVC中将参数从一个页面传递到另一个页面?”。你特别想知道如何传递“cf”参数,但是这里的读者会倾向于传递过于具体的问题,因为它需要太多时间来弄清楚你想要什么。
在回答这个问题时,请参阅Spring MVC - passing variables from one page to anther作为可能的帮助。
此外,对于JSP的这个问题,有很多很好的答案,可以在SpringMVC架构中使用。请参阅How to pass value from one jsp to another jsp page?作为可能的帮助。