使用ModelAttribute注解设置项目路径为空串

为什么我项目多刷新几次,就拿不到项目路径了?
我所有的controller都继承了这个basecontroller:


@Controller
public class BaseController {
    @ModelAttribute
    public void preHandler(HttpServletRequest request){
        request.setAttribute("ctx",request.getContextPath());
    }
}

然后所有的页面都引入了这个common.ftl页面:

<script type="text/javascript">
    var ctx="${ctx}";
</script>

然后在js里面直接使用ctx:

url:ctx+"/saleChance/queryList"

但是当我多刷新几次之后,就不能进到BaseController里面了,然后拿到的ctx是空串,当我不停的刷新的时候,偶尔又能够进入BaseController里面拿到ctx