相关疑难解决方法(0)

哪个更好,在spring3控制器上返回"ModelAndView"或"String"

返回ModelAndView的方式

@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView list(
    @UserAuth UserAuth user, 
    ModelAndView mav) {

    if (!user.isAuthenticated()) {
        mav.setViewName("redirect:http://www.test.com/login.jsp");
        return mav;
    }

    mav.setViewName("list");
    mav.addObject("articles", listService.getLists());

    return mav;
}
Run Code Online (Sandbox Code Playgroud)

返回String的方式

@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(
    @UserAuth UserAuth user, 
    Model model) {

    if (!user.isAuthenticated()) {
        return "redirect:http://www.test.com/login.jsp";
    }

    model.addAttribute("articles", listService.getLists());

    return "list";
}
Run Code Online (Sandbox Code Playgroud)

这些工作相同.哪个更好?有什么区别?

controller spring-mvc

112
推荐指数
2
解决办法
9万
查看次数

什么是Spring MVC控制器方法的有效返回类型?

我没有太多的Spring MVC经验,我有以下关于控制器方法可以返回的valids返回类型的内容.

所以我知道用户生成一个由DispatcherServlet接收和处理的HttpRequest,它将此请求分派给特定的控制器类.

控制器类是这样的:

@Controller
public class AccountController {

    @RequestMapping("/showAccount")
    public String show(@RequestParam("entityId") long id, Model model) {
        ...
    }

    .......................................
    .......................................
    .......................................
}
Run Code Online (Sandbox Code Playgroud)

所以我知道每个方法处理一个特定的请求,并且处理的请求由@RequestMapping注释指定.

我也知道该方法返回一个String对象,该对象是逻辑视图名称(然后由视图解析器解析以呈现视图)

所以,在这个阶段,我认为控制器类的方法只返回String对象.但我不确定.也许像这样的方法也可以返回一些不同类型的对象?

java model-view-controller spring annotations spring-mvc

24
推荐指数
1
解决办法
3万
查看次数