gpt4 book ai didi

java - Bean 从 Controller 到另一个 Controller

转载 作者:行者123 更新时间:2023-12-01 04:13:27 25 4
gpt4 key购买 nike

如何将 Bean 从一个 Controller 传递到另一个 Controller ?我尝试的是:

页面默认获取 Controller

@RequestMapping( value = "/{prePath:[a-zA-Z]+}/module", method = RequestMethod.GET )
public String module( @RequestParam( defaultValue = "" )
String message, @RequestParam( defaultValue = "" )
String messageType, HttpServletRequest request, ModelMap model )
{
model.addAttribute( "message", message );
model.addAttribute( "messageType", messageType );
return "als-student/module";
}

链接到 Controller

<a href="../${ usertype }/module/${ file_id }.do" >Spring Tutorial</a>

另一个 Controller 仅从数据库获取数据并假设将数据发送到另一个 Controller

@RequestMapping( value = "/{prePath:[a-zA-Z]+}/module/{file_id}" )
public String getModule( @PathVariable( "file_id" )
int fileId, Model model )
{
try
{
FileBean fileBean = new FileDAO().getFileInfo( fileId );
if( fileBean != null )
{
model.addAttribute( "fileBean", fileBean );
return "redirect:../module.do";
}
}
catch( Exception e )
{
e.printStackTrace();
}

return "redirect:../module.do?error";
}

但是我无法访问jsp,它什么也没显示。这是我访问它的方式

<p> ${ fileBean.fileName } </p>

最佳答案

您需要使用RedirectAttributes来实现此目的:

@RequestMapping( value = "/{prePath:[a-zA-Z]+}/module/{file_id}" )
public String getModule( @PathVariable( "file_id" )
int fileId, Model model, RedirectAttributes redirectAttributes)
{
try
{
FileBean fileBean = new FileDAO().getFileInfo( fileId );
if( fileBean != null )
{
//model.addAttribute( "fileBean", fileBean );
redirectAttributes.addFlashAttribute("fileBean", fileBean);
return "redirect:../module.do";
}
}
catch( Exception e )
{
e.printStackTrace();
}

return "redirect:../module.do?error";
}

Flash 属性在重定向之前临时保存(通常在 session 中),以便在重定向之后可供请求使用并立即删除。

关于java - Bean 从 Controller 到另一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19662460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com