需求:在页面重定向的时候传递参数,不使用session,使用RedirectAttributes
代码如下
@RequestMapping( value = "testForward" )
public String testForward( HttpServletRequest request, final RedirectAttributes attr )
{
// return "forward:/index.jsp";
request.setAttribute( "aaa", "aaa" );
return "forward:/global/testRedirect.do";
}
@RequestMapping( value = "testRedirect" )
public String testRedirect( HttpServletRequest request, final RedirectAttributes attr )
{
// 下面这种方式参数将会被附在url后面传递过去
// attr.addAttribute( "aaa", request.getAttribute( "aaa" ) );
// 下面这种方式在jsp页面中就获取不到了
attr.addFlashAttribute( "aaa", request.getAttribute( "aaa" ) );
return "redirect:/index.jsp";
}
发现attr.addFlashAttribute( "aaa", request.getAttribute( "aaa" ) );的时候jsp页面使用${aaa}无法获取到参数。请各位大神解答,谢谢
addFlashAttribute的原理是放入session,并且在下次请求的时候清除。所以你希望保持到再下个请求,你可以直接放入session中。
那就包装下,这样主程序就看不到while循环了。
<?php
$sql_0="select * from category where category_parent_id = 0";
lt($sql_0, function($arr) {
...
return $arr;
});
?>
function lt($sql, $factor)
{
$query_0=mysql_query($sql);
while ($rs_0 = factor(mysql_fetch_array($query_0)))
}
你是不是又刷新或者请求了,参考这个例子 http://jackyrong.iteye.com/blog/1798072
reditect重定向,会丢弃request参数