如何在Spring MVC应用程序中正确初始化一个必须包含我的控制器的2个方法检索的数据的对象?

时间:2016-04-08 10:45:03

标签: spring spring-mvc architecture

我是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 (或类似的东西)注释这个类,将它注入我的控制器?

这种情况的最佳解决方案是什么?

1 个答案:

答案 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?作为可能的帮助。