- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个后 Controller ,它接受输入表单字段,经过一些计算并检索数据库值后,它重定向到带有两个参数的获取 Controller 。
@RequestMapping(value = "/user/calculate", method = RequestMethod.POST )
public String compareClients(@Valid UserInfo calculate, BindingResult bindingResult) {
/*some calculations*/
long firstClient=calculate.getFirstId();
long secondClient=calculate.getSecondId();
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("firstInfo",firstInfo);
modelAndView.addObject("secondInfo",secondInfo);
modelAndView.addObject("infoId",id);
return "redirect:/user/calculate?firstId=" + firstClient + "&secondId=" + secondClient;
我想将firstInfo、secondInfo和infoId传递给另一个 Controller ,以便从那里我将其显示在thymeleaf上
@RequestMapping(value = "user/calculate", method = RequestMethod.GET, params = { "firstId", "secondId" })
public ModelAndView comparison(@RequestParam(value = "firstId", required = true) String firstId,@RequestParam(value = "secondId", required = true) String secondId) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("firstClient", firstId);
modelAndView.addObject("secondClient", secondId);
return modelAndView;
}
我该如何实现这一目标?请帮忙。我尝试使用转发而不是重定向,但响应时间太长,并且不会转发到获取 Controller 。无法使用 flashAttributes,因为如果刷新页面,我需要 Thymeleaf 上的信息。我无法通过 URL 传递所有 5 个对象。如果将这些内容隐藏起来,那就更好了。
最佳答案
我对 Thymeleaf
不太了解,但您可以使用 RedirectAttributes
将所需的值传递给另一个 Controller 。由于您的评论希望在刷新页面时保留该值。所以我给你一个使用 SessionAttributes
public class YourInfo{
private String firstInfo;
private String secondInfo;
//setter and getter
}
您的 Controller 类添加 session 属性注释
@Controller
@SessionAttributes("myInfo")
现在移至请求部分。
@RequestMapping(value = "/user/calculate", method = RequestMethod.POST )
public String compareClients(@Valid UserInfo calculate, BindingResult bindingResult, Model model) {
/*some calculations*/
long firstClient=calculate.getFirstId();
long secondClient=calculate.getSecondId();
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("firstInfo",firstClient);
modelAndView.addObject("secondInfo",secondClient);
modelAndView.addObject("infoId",id);
if(!model.containsAttribute("myInfo")){
YourInfo yourInfo = new YourInfo();
yourInfo.setFirstInfo(String.valueOf(firstClient));
yourInfo.setSecondInfo(String.valueOf(secondClient));
model.addAttribute("myInfo",yourInfo);
}
return "redirect:/user/calculate";
}
和你的获取 Controller (假设你的firstInfo和secondInfo将是字符串)
@RequestMapping(value = "user/calculate", method = RequestMethod.GET)
public ModelAndView comparison(@ModelAttribute("myInfo") YourInfo yourInfo) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("firstClient", yourInfo.getFirstInfo());
modelAndView.addObject("secondClient", yourInfo.getSecondInfo());
return modelAndView;
}
关于java - 重定向到接收 Controller 后传递 modelAndView 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46886498/
问题在标题中。我有一个 Spring MVC Web 应用程序,我必须修改很多东西,我对此一无所知,在做任何事情之前我都想了解它是如何制作的。 有什么区别: return new ModelAndVi
这个问题已经有答案了: what is the difference in org.springframework.web.servlet.ModelAndView vs org.springfram
谁能说出两者的区别 org.springframework.web.servlet.ModelAndView 和 org.springframework.web.portlet.ModelAndVie
我有一个 Managers 列表,需要在我的 @Controller 方法中返回。我还有一个需要同时返回的用户表单 View 。 managerList是从之前的@Controller返回的。我可能盯
我正在写一个 HandlerInterceptor需要将某个 session 范围的 bean 插入 Model . postHandle的签名是这样的: public void postHandle
如何在 Spring MVC 3 的 Controller 中将多个对象添加到 ModelAndView 中?这可能吗? 最佳答案 您可以在 Spring 中使用 addAttribute() 方法向
我有以下发出请求的函数: function postIngredient(action, options) { var xhr = new XMLHttpRequest(); xhr.
我想要显示的页面存在于: java/resources/src/main/webapp/etwebTmpl/login/reset.jsp 我正在使用 ModelAndView,当我去显示它时,我收到
如何在 Spring MVC 3 的 Controller 中将多个对象添加到 ModelAndView 中?这可能吗? 最佳答案 您可以在 Spring 中使用 addAttribute() 方法向
我想通过一些自定义 header 从一个 Controller 重定向到另一个 Controller 。 SpringBoot 2.1.x @Slf4j @RestController @Reques
来自引用链接:How do you redirect to another URI and access an object from the previous modelAndView,如果 pub
当我的操作返回一个 ModelAndView 时是否可以返回一个字符串? public ModelAndView register(....) { ModelAndView mav = new
在 Spring 中,有没有办法在返回 View 后执行任务,或者我需要创建一个线程池并执行它? 例如: public ModelAndView handleRequest(HttpServletRe
我正在尝试从 Controller 向 jsp 返回一个简单的字符串“HelloSpring”。 Controller 是 package it.polito.ai.e4; import javax.
我正在尝试运行 springMVC 应用程序,但它向我显示空白页面。 在我的 Controller 类中,我有 @Controller public class LoginController ext
我有一个名为 的 i18n 属性文件 MessagesBundle_en.properties invalidresourceBundle = Default locale English inval
当我声明的 modelAndView 对象为空时,我试图显示一条消息,该对象使用 addObject() 加载并通过 Controller 返回 我的代码有点像... ModelAndView mod
在 Controller 中给出这个 Action : def listBlockedMembers() { def blocked = UserBlock.findAllByUser(spr
js中是否可以获取返回对象和字符串? Map myModel = new HashMap(); if (preview.equalsIgnoreCase("pdf")) {
在 Spring ,当控制返回 View 时,我看到它返回了, return new ModelAndView("contact", "command", new Contact()); 但是我看到了
我是一名优秀的程序员,十分优秀!