从不同的方法加载相同的模板

时间:2013-03-04 08:14:58

标签: tomcat spring-mvc

我的案例如下: 我的网站包含帐户列表和每行的编辑按钮。我有一个模板,用于创建新帐户。控制器:

@RequestMapping(value = USERS + LECTURER + ADD, method = GET)
    public String userAdd() {
        return ADMINISTRATION + USERS + LECTURER + ADD;
    }

我想使用相同的模板来编辑用户,但我有方法首先识别用户是否为ex。讲师或学生:

@RequestMapping(value = USERS + "/{userId}" + EDIT, method = GET)
    public String editUser(@PathVariable(value = "userId") final long userId,
            final ModelMap modelMap) 

然后我想将所有用户数据(姓名,姓氏等)加载到表单中(USERS + LECTURER + ADD)。我怎样才能尊重Post / Redirect / Get模式?我打算这样做: (有人点击了编辑按钮) - >转到找到用户访问级别的方法映射USERS / {userId} / EDIT - > (如果LECTURER)转到USERS / LECTURER / {idUser} / EDIT并加载所有数据以形成(模板在USERS / LECTURER / ADD中) - >保存修改后的数据并重定向到USERS(用户列表)

2 个答案:

答案 0 :(得分:1)

只要您的requestmapping方法返回一个字符串(或modelandview),您就可以返回您喜欢的任何模板引用。 spring将使用返回的字符串来解析模板。 看一下有关请求映射的spring文档。它在那里得到了很好的解释。

答案 1 :(得分:0)

好吧,虽然我不能有2个方法使用相同的RequestMapping,但是当这些方法使用不同的HTTP方法(POST或GET)时,它是可能的。它解决了我的问题,因为我使用GET在控制器方法中加载了表单并使用POST(+ redirect)保存了更改。感谢回复,马丁。