我可以在不同的 Spring 控制器中使用不同参数的相同映射值吗?

2024-05-04

有什么办法可以完成这样的事情: 我有一个用于导航的表单:

<form action="mapping.do">

   <input type="submit" value="menuOption01" />

   <input type="submit" value="menuOption02" />

</form>

The PageController类太大并且有太多依赖项,我需要添加另一个菜单选项,但不想增加复杂性。我想在另一个控制器中有一个方法来处理新的菜单选项。

尝试这个会给我一个 Spring 配置错误(已经映射了处理程序):

@Controller
@SessionAttributes(types = { Entity.class })
class PageController {

    @RequestMapping(params = "menuOption01", value = "mapping.do")
    public String viewPage(@ModelAttribute final Entity entity) {
        ...
        return "view";
    }

    ... // another 5000 lines of code

}


@Controller
class OtherController {

    @RequestMapping(params = "menuOption02", value = "mapping.do")
    public String viewOtherPage(@ModelAttribute final Entity entity) {
        ...
        return "otherview";
    }

}

我遇到了类似的情况,因此我们为这些类型的方法创建了以下默认处理程序:

@RequestMapping(method = RequestMethod.POST, params = SIDE_TAB, value = "sideMenuController.xhtml")
public ModelAndView changeSelectedTab(@RequestParam(SIDE_TAB) String sideTab) {
  return new ModelAndView("redirect:/location/" + Utils.toCamelCase(sideTab) + ".xhtml");
}

我们的页面如下:

<input type='submit' name='side-tab' value='$value' />

这当然意味着我们必须为文件本身制定命名标准,但这很容易确保发生(即“事件历史记录”将转到 eventHistory.xhtml,“创建新实体”将转到“createNewEntity.xhtml” “, ETC....)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在不同的 Spring 控制器中使用不同参数的相同映射值吗? 的相关文章

随机推荐