您的位置:首页 > 运维架构 > 网站架构

以简求快 Java快速开发框架LML网页架构和角色菜单展现

2012-08-09 11:04 253 查看
  任何人只要在对的地方做对的事,就值得尊敬!

对于系统而言,管理员必须保证每一个用户只能做自己该做的事。所以任何一个项目,必然有一套权限管理策略。复杂的就很复杂了,我将一切从简。园子里有号称能将权限管理做的极致的,咱也没留意看过,谁知道呢。由于是实验型项目,我只是使用了单角色,具体业务大家可具体对待。

曾经我还是ASP.Net的初学者的时候,某一本从入门到精通类似的书上在介绍母板的时候,信口开河的预言:母板的出现将取代网页frameset的架构设计。当时我是深信不疑,把作者佩服的五体投地。但是,我一直怀疑母板(或者概念类似母板的一类)的作用,书上可能介绍说把若干个网页相同的部分提取为母板,这样直接引用即便于管理,又减少页面代码。问题就在这里,你需要在某一页面主动引用母板,母板就只能类似于#define,只能是在模板引擎在解析的时候将母板加以替换而已。这样,我们在访问引用同一母板的任何一个页面,母板都会被重新替换,重新解析和加载!当我们需要的众多页面的公用部分没必要甚至不可以重复加载的情况下,我们依然需要frameset/iframe。

下面,给出首页的frameset源码:

  

菜单展示页面的源码

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<metahttp-equiv="X-UA-Compatible"content="IE=EmulateIE8"/>
<title>蜜蜂的智慧</title>
<linkrel="stylesheet"type="text/css"href="../Theme/1/base/css/menu.css"/>
<scripttype="text/javascript"src="../Content/javascript/jquery-1.6.2.min.js"></script>
<scripttype="text/javascript"src="../Content/javascript/Framework/index.js"></script>
</head>
<bodystyle="background: url(../Theme/1/base/images/menu_bg.jpg) repeat-y;">
<divid="menu"style="height:100%;">
<divclass="content">
<divclass="menu_info">
<ulid="first_menu">
#foreach($item in $menu.rows)
#if("$item.level"=="1")
<liclass="L1"><ahref="javascript:c('$item.Id');"id="$item.Id"><span>
<imgsrc="../Content/images/menu/$item.pic"align="absMiddle"/>$item.name</span></a></li>
<ulid="${item.id}d"style="display: none;"class="U1">
#foreach($item2 in $menu.rows) #if("$item2.parent"=="$item.id")
<liclass="L22"><ahref="javascript:;"id="$item2.Id"onclick="OpenUrl('$item2.id','/Wisdom/$item2.url');">
<span>$item2.name</span></a></li>
#end #end
</ul>
#end #end
</ul>
</div>
</div>

</div>
<divclass="key"onclick="initHidemenu(bottom);">
</div>
<scriptlanguage="JavaScript">

function OpenUrl(id, url)
{
$("#mainindex", window.parent.document).attr("src", url);
$(".L22 > a").removeClass("active");
$(id).addClass("active");
};

$("#first_menu > li > a > span").hover(
function ()
{
$(this).stop().animate({ paddingLeft: "15px" }, 200);
},
function ()
{
$(this).stop().animate({ paddingLeft: "5px" });
}
);

</script>
</body>
</html>


  需要注意的地方就是,菜单的双层循环,第一层循环是获得用户菜单的一级菜单,第二层循环是获得当前一级菜单的二级子菜单。

  首页整体就这样了。很多人可能不是很熟悉velocity语法,百度吧,我也会整理一下我们经常用到的velocity语句。这一定是最简单的。

  数据库文件下载:http://files.cnblogs.com/Bytime/120731233430.zip

  下集预告:velocity常用基本语法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: