有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring框架如何避免控制器中的重复代码?

我的大多数控制器都有重复代码,如下所示

@RequestMapping(value = "process1/add.do", method = RequestMethod.POST)
public String add(@ModelAttribute("obj1") @Valid Object1 obj1,
        ModelMap modelMap, HttpServletRequest request) {

    String tp = request.getParameter("tp");
    String co = request.getParameter("co");

    String a = request.getParameter("a");
    String successUrl = "process2/add.do?tp" + tp + "&co=" + co;
    String failureUrl = "process1/list.do?tp" + tp + "&co=" + co;

    try {
        obj1.setType(tp);
        obj1.setCode(co);
        obj1.setValue(a);
        process1Service.add(obj1, a);
        return "redirect:successUrl";
    } catch (Exception e) {
        return "redirect:failureUrl";
    }
}

@RequestMapping(value = "process2/add.do", method = RequestMethod.POST)
public String add(@ModelAttribute("obj2") @Valid Object2 obj2,
        ModelMap modelMap, HttpServletRequest request) {

    String tp = request.getParameter("tp");
    String co = request.getParameter("co");

    String successUrl = "process3/add.do?tp" + tp + "&co=" + co;
    String failureUrl = "process2/list.do?tp" + tp + "&co=" + co;

    try {
        obj2.setType(tp);
        obj2.setCode(co);
        process2Service.add(obj2);
        return "redirect:successUrl";
    } catch (Exception e) {
        return "redirect:failureUrl";
    }
}

我在这里省略了get方法,因为很容易猜测它们是怎样的。 关键是,几乎我的post方法甚至get方法都会获得名为“tp”和“co”的url参数。 有什么好办法可以避免写重复的代码吗


共 (0) 个答案