java - Spring MVC 将属性设置为 request/model/modelMap

标签 java spring-mvc

我使用 Spring MVC。我需要向请求或其他对象添加属性。它应该是将显示在屏幕上的消息。例如,如果我使用纯 Servlet,我可能只是:

request.setAttribute("message", "User deleted");

比在JSP页面上

<div id="message">${message}</div>

但是当我尝试在方法中做这样的事情时:

@RequestMapping(value = "/delete", method = RequestMethod.GET)
public String deleteUser(@RequestParam("login") String login,
        ModelMap map, HttpServletRequest request)

模型对象 -

model.addAttribute("message", "User deleted");

map -

map.put("message", "User deleted");

模型图 -

map.put("message", "User deleted");

HttpServletRequest -

request.setAttribute("message", "User deleted");

没有显示。但是在我的浏览器中我看到:http://localhost : 8081/project/index?message=User+deleted

如何解决这个小问题? 感谢您的回答

更新:

为了清楚理解,我尝试这样做:

 @RequestMapping(value = "/delete", method = RequestMethod.GET)
public String deleteUser(@RequestParam("login") String login,
        Model model) {
    dao.delete(login); // there is NO exeptions
    map.addAttribute("message", "User " + login + " deleted");
    return "redirect:" + "index";
}

在我的 JSP 中,我也以这种方式显示用户登录:

${user.login}

它从 Session 中获取用户并且我看到它登录

最佳答案

根据您的新信息,问题是 redirect:。当您进行重定向时,您会发送带有 302(或 301)响应代码的 HTTP 响应以及指向新 url 的 Location header 。浏览器将向该位置发出新的 HTTP 请求。因此,您的请求属性(和模型属性)不再有效,它们不存在于 请求中。

考虑使用 flash 属性。 RedirectAttributes 类是要走的路。 The javadoc has a good example.


Model 属性在请求处理过程中很晚才被添加到请求属性中。因此,您不会直接看到它这样做

@RequestMapping(value = "/delete", method = RequestMethod.GET)
public String deleteUser(@RequestParam("login") String login,
        ModelMap map, HttpServletRequest request)
    map.put("message", "User deleted");
    String message = (String) request.getAttribute("message"); // will return null
    ...
}

相信它最终会出现在请求属性中,因此在您的 jsp 中可用。

关于java - Spring MVC 将属性设置为 request/model/modelMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18983935/

相关文章:

spring - 如何在 Spring Security 3.2 中有问题地设置 Access-Control-Allow-Origin 过滤器

java - 在 SpringMVC 应用程序中初始化 MongoDB 存储库时出错

Ajax请求,应该是POST还是PUT

java - 在 Spring MVC 中将参数从 JSP 传递到 Controller

java - 安卓机房 : Get present database version/check if is out-dated

java - 使用 xmlbeans 创建并填充 xml 文档

java - 如何在 JavaFX 中使用字符串数组列表填充 TableView

java - java中的异常错误

Java 类型安全的 equals()

java - spring mvc,想要打包类(模型等),拦截器, Controller 以供重用