这个问题困扰了我很久,一开始就是想着菜单的点击事件来改变样式,但是菜单点击后就跳转了,改变样式随着新的页面被加载而作废。于是就想用一个全局变量来作为标示,在页面初始阶段判断。但是由于对jsp不熟悉,还是一头雾水。最终还是得转到asp.net上,无意间我想到了用url因为一个页面的url是唯一的,他就可以作为标示。于是开始了,我的尝试。 首先获取当前所在页面的url ,通过httpcontext.current.request.path获取,让后来个判断语句。
string url = HttpContext.Current.Request.Path;
switch (url)
{
case "/index.aspx": CurrentMenu = "主页"; break;
case "/Product.aspx": CurrentMenu = "产品中心"; break;
case "/Service.aspx": CurrentMenu = "综合服务"; break;
case "/News.aspx": CurrentMenu = "新闻中心"; break;
case "/About.aspx": CurrentMenu = "关于微尘"; break;
case "/Contact.aspx": CurrentMenu = "联系我们"; break;
default: CurrentMenu = "首页"; break;
}
设定一个全局变量来记录是跳转到那个页面。
然后回到前端通过三元运算来改变标签的class属性从而通过预先准备好的样式来改变当前页面所对应的菜单的样式。
class="<%=CurrentMenu=="主页"?"current_page_item":"" %>"
string url = HttpContext.Current.Request.Path;
switch (url)
{
case "/index.aspx": CurrentMenu = "主页"; break;
case "/Product.aspx": CurrentMenu = "产品中心"; break;
case "/Service.aspx": CurrentMenu = "综合服务"; break;
case "/News.aspx": CurrentMenu = "新闻中心"; break;
case "/About.aspx": CurrentMenu = "关于微尘"; break;
case "/Contact.aspx": CurrentMenu = "联系我们"; break;
default: CurrentMenu = "首页"; break;
}
设定一个全局变量来记录是跳转到那个页面。
然后回到前端通过三元运算来改变标签的class属性从而通过预先准备好的样式来改变当前页面所对应的菜单的样式。
class="<%=CurrentMenu=="主页"?"current_page_item":"" %>"