加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:38:47 所属栏目:Java 来源:网络整理
导读:我使用 Spring MVC.我需要添加属性到请求或其他对象.它应该是将显示在屏幕上的消息.例如,如果我使用纯Servlet我可能只是: request.setAttribute("message","User deleted"); 而不是在JSP页面上 div id="message"${message}/div 但是当我在方法中尝试这样做
我使用 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.put("message","User deleted");

ModelMap –

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

HttpServletRequest –

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

没有显示.但在我的浏览器中,我看到:http:// localhost:8081 / project / index?message =用户删除

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

更新:

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

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

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

${user.login}

它需要用户从会话,我看到它登录

解决方法

使用您的新信息,问题是重定向:.当您进行重定向时,您将发送一个具有302(或301)响应代码的HTTP响应,“位置”标题指向新的URL.浏览器会向该位置发出新的HTTP请求.因此,您的请求属性(和模型属性)不再是好的,它们不存在于新请求中.

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

在请求处理过程中,Model属性将被稍后添加到请求属性中.因此,您不会直接看到它

@RequestMapping(value = "/delete",HttpServletRequest request)
    map.put("message","User deleted");
    String message = (String) request.getAttribute("message"); // will return null
    ...
}

只是相信它最终将在请求属性中,因此可以在你的jsp中使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读