我记录综合系统学习研究之用户管理三(wojilu.Web.Controller.Layouts SiteLayoutController)
2013-01-13 21:32
471 查看
书接上回
本节来分析wojilu.Web.Controller.Layouts SiteLayoutController的Layout方法
public override void Layout() {
load("topNav", new TopNavController().Index);
对照framework\views\Layouts\SiteLayout\Layout.html里的前端视图代码看一下
以下代码片段
<body>
#{topNav}
<div id="pageWrap">
<div id="pageWrapInner">
#{header}
<div id="pageMainWrap">
load("topNav", new TopNavController().Index);
是对上面的topNav变量赋值,赋什么值呢,看一下load的定义
protected void load( String sectionName, aAction action ) {
set( sectionName, loadHtml( action ) );
}
可以看出是将framework\views\Layouts\TopNav\Index.html的内容填充后,替换#{topNav}
同理 load("header", new TopNavController().Header);
是将framework\views\Layouts\TopNav\Header.html的内容填充后,替换#{header}
接下来我们看一下TopNavController().Index和framework\views\Layouts\TopNav\Index.html有没有什么可以挖掘的东西。
我们看到TopNavController().Index最后有一句 set( "navUrl", t2( Nav ) );
对framework\views\Layouts\TopNav\Index.html最后的变量#{navUrl}进行了赋值,参见以下:
<script type="text/javascript">var ctx = null;var navUrl = '#{navUrl}';</script>
<script type="text/javascript" src="~js/wojilu.site.topnav.js?v=#{jsVersion}"></script>
欲知此处的奥秘,我们就要看下wojilu.web\static\js\wojilu.site.topnav.js的实现了
$(document).ready( function() {
navUrl = (navUrl + '?url='+window.location.href).toAjax();
......
$.post( navUrl, function(data) {
ctx = data;
......
}
这里通过ajax的post方法,再次请求了服务器TopNavController()的Nav action
public void Nav() {
// TODO 如果是在访问用户空间,则判断:是否好友、是否关注
echoJson( getLoginJsonString() );
}
Nav()方法返回一段json给客户端。动态设置用户的一些状态和权限。
![](http://images.cnitblog.com/blog/110119/201301/13210108-27b4aafff04843e2a81bebb7c25e34c1.png)
load("header", new TopNavController().Header);
主要是加载site的菜单和子菜单。有空再进行深入探讨。
综上所述,整个流程,有两次服务器访问,一次是页面加载,一次是js请求topnav的json数据。
本节来分析wojilu.Web.Controller.Layouts SiteLayoutController的Layout方法
public override void Layout() {
load("topNav", new TopNavController().Index);
对照framework\views\Layouts\SiteLayout\Layout.html里的前端视图代码看一下
以下代码片段
<body>
#{topNav}
<div id="pageWrap">
<div id="pageWrapInner">
#{header}
<div id="pageMainWrap">
load("topNav", new TopNavController().Index);
是对上面的topNav变量赋值,赋什么值呢,看一下load的定义
protected void load( String sectionName, aAction action ) {
set( sectionName, loadHtml( action ) );
}
可以看出是将framework\views\Layouts\TopNav\Index.html的内容填充后,替换#{topNav}
同理 load("header", new TopNavController().Header);
是将framework\views\Layouts\TopNav\Header.html的内容填充后,替换#{header}
接下来我们看一下TopNavController().Index和framework\views\Layouts\TopNav\Index.html有没有什么可以挖掘的东西。
我们看到TopNavController().Index最后有一句 set( "navUrl", t2( Nav ) );
对framework\views\Layouts\TopNav\Index.html最后的变量#{navUrl}进行了赋值,参见以下:
<script type="text/javascript">var ctx = null;var navUrl = '#{navUrl}';</script>
<script type="text/javascript" src="~js/wojilu.site.topnav.js?v=#{jsVersion}"></script>
欲知此处的奥秘,我们就要看下wojilu.web\static\js\wojilu.site.topnav.js的实现了
$(document).ready( function() {
navUrl = (navUrl + '?url='+window.location.href).toAjax();
......
$.post( navUrl, function(data) {
ctx = data;
......
}
这里通过ajax的post方法,再次请求了服务器TopNavController()的Nav action
public void Nav() {
// TODO 如果是在访问用户空间,则判断:是否好友、是否关注
echoJson( getLoginJsonString() );
}
Nav()方法返回一段json给客户端。动态设置用户的一些状态和权限。
![](http://images.cnitblog.com/blog/110119/201301/13210108-27b4aafff04843e2a81bebb7c25e34c1.png)
load("header", new TopNavController().Header);
主要是加载site的菜单和子菜单。有空再进行深入探讨。
综上所述,整个流程,有两次服务器访问,一次是页面加载,一次是js请求topnav的json数据。
相关文章推荐
- 我记录综合系统学习研究之用户管理一(wojilu.Web.Controller.Users MainController)
- 我记录综合系统学习研究之用户管理二(wojilu.Web.Controller.Users MainController)
- 我记录综合系统学习研究之用户管理五(如何利用wojilu打造一个全新的SNS应用)
- 我记录综合系统学习研究之用户管理四(用户空间)
- 我记录综合系统学习研究之开篇
- 客户关系管理系统11(用户拜访客户记录)
- centos7 系统管理systemd学习记录
- Linux学习总结(十六)系统用户及用户组管理
- Linux系统命令及Shell脚本学习笔记二:用户管理
- Oracle用户、权限、角色管理学习(文字很系统)
- <Linux 私房菜>基础学习篇学习记录(2)磁盘与文件系统管理
- ajax综合案例之用户管理系统
- Oracle学习记录整理笔记2-用户管理
- .NET快速信息化系统开发框架 V3.2 -> Web 用户管理模块编辑界面-组织机构选择支持级联选择
- Docker容器学习梳理--web管理工具DockerUI部署记录
- web工作流管理系统开发之五 开源osworkflow之用户系统改造
- 电影记录管理系统5[用户注册]
- django 学习-18 用户管理Auth系统使用
- .NET快速信息化系统开发框架 V3.2 -> Web 用户管理模块编辑界面-组织机构选择支持级联选择
- web系统在线用户管理实现