lemon oa前端页面——由user-base-list谈项目组织

content

user-base-list.jsp
中指定
<%pageContext.setAttribute("currentHeader", "user");%>  // currentHeader值在/header/user.jsp中会被覆盖,在/header.jsp中起作用,
<%pageContext.setAttribute("currentMenu", "user");%>  // 在/menu/user.jsp页面中会影响哪些accordion-body被收缩

主要布局是
  <body>
    <%@include file="/header/user.jsp"%>

<div class="row-fluid">
   <%@include file="/menu/user.jsp"%>  // 2个栅格

<!-- start of main -->
      <section id="m-main" class="span10">  // 10个栅格

</section>
   <!-- end of main -->
 </div>

</body>

--------------------------------------------------------------------------------------------

header
/header/user.jsp中
<%pageContext.setAttribute("currentHeader", "scope");%>
<%@include file="/header.jsp"%>

/header.jsp中,主要定义页面头部,功能是导航菜单(首页,个人事务,统计报表,系统管理(下拉菜单)),用户管理(用户密码修改、用户退出)和未读消息三块
<ul class="nav">
<li class="divider-vertical"></li>
<li class="${currentHeader == ‘dashboard‘ ? ‘active‘ : ‘‘}"><a href="${scopePrefix}/dashboard/dashboard.do">首页</a></li>
<li class="${currentHeader == ‘bpm-workspace‘ ? ‘active‘ : ‘‘}"><a href="${scopePrefix}/bpm/workspace-home.do">个人事务</a></li>
<li class="${currentHeader == ‘report‘ ? ‘active‘ : ‘‘}"><a href="${scopePrefix}/report/chart-mostActiveProcess.do">统计报表</a></li>
<li class="dropdown ${currentHeader == ‘scope‘ ? ‘active‘ : ‘‘}">
 <a data-toggle="dropdown" class="dropdown-toggle" href="#">系统管理 <b class="caret"></b></a>
 <ul class="dropdown-menu">
 </ul>
</li>
</ul>
可以看到currentHeader是如何起作用的。

未读消息就是一个跳转到<a href="${scopePrefix}/msg/msg-info-listReceived.do">的链接,
然后页面会定时刷新<i id="unreadMsg" class="badge"></i>,显示有几条未读消息(调用MsgResource类中的unreadCount()方法)

--------------------------------------------------------------------------------------------

menu
/menu/user.jsp是用户管理的菜单,
是在页面的左侧边,<aside id="m-sidebar" class="accordion span2" data-spy="affix" data-offset-top="100">,span2说明占2个栅格的宽度
主要是一个<div class="accordion-group">,然后下面有一个<footer id="m-footer" class="text-center">
在<div class="accordion-group">中有<div id="collapse-user" class="accordion-body collapse ${currentMenu == ‘user‘ ? ‘in‘ : ‘‘}">
然后在/lemon/webapp/s/bootstrap/3.2.0/css/bootstrap.css中有定义
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}

时间: 2024-10-25 17:30:50

lemon oa前端页面——由user-base-list谈项目组织的相关文章

四: 使用vue搭建网站前端页面

---恢复内容开始--- 在搭建路由项目的时候的基本步骤 一:创建项目 安装好vue 搭好环境 (步骤在上篇博客中) 进入项目目录      cd   目录路径/ 目录名 创建项目          vue init webpack  项目名 效果: 项目文件结构:及作用 -- build // 项目构建(webpack)相关代码 | |-- build.js // 生产环境构建代码 | |-- check-version.js // 检查node.npm等版本 | |-- dev-client

ASP.NET网站前端页面的复制

网络普及的时代,遇到问题的首要解决方案并不是问人,而是找度娘.当我们找一些技术性的问题时,会发现很多解决方案在博客里,看看博主发表的博客总是惊叹不已,想要自己也有这么一个好习惯,把学到的东西以自己的方式记录下来,下次用到类似的问题直接翻自己的博客岂不是更好,不需要再重新百度了:然而,我只是想想,相信同辈的小伙伴们和我是一样的,思想上的巨人,行动上的矮子.于是,今天良心发现,想要从今天开始记录自己的所感所悟,希望养成这样的一个好习惯. 然而把这一页放在.NET的分类下,是想要分享自己的一个小本领(

iwebshop里面前端页面query标签如何传递api数据

开发中遇到了前台页面用query标签查出来的数据,需要通过api获取数据,那么接下来就给大家说一下如何通过api里的方法来传递数据到前端! 首先前端页面必须是query标签获取的数据 例子: {set:$queryObj=Api::run('getSellerList',$flag);$resultData=$queryObj->find()} {if:$resultData} {foreach:items=$resultData} 例子中 注意自己定义的 api方法 给一个自定义参数,此$fl

Python之路-(js正则表达式、前端页面的模板套用、Django基础)

js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m 表示多行匹配 登录注册验证: test: 判断字符串是否符合规定的规则 rep = /\d+/;   (定义规则) rep.test('')   (引号里面必须包含字母和数字才返回true,否则为false) rep = /^\d+$/; (只有是纯数字时候才返回true,否则是false) exe

用github来展示你的前端页面吧

前言 经常会有人问我如何才能将自己做的静态页面放到网上供他人欣赏,是不是需要自己有一个服务器,是不是还要搞个域名才能访问?对于以上问题我都会回答:用github来展示你的前端页面吧. 工欲善其事,必先利其器.github是一个很好的代码管理与协同开发平台,在程序界又被称为最大的"同性交友网站".如果你不懂git,没有自己的github账户,那你就丢失了一把能够很好的展示自我,储存知识的利器. 当然知道github的人不在少数,但是大部分人可能仅知道它可以用于管理我们的项目代码,而不知道

利用struts进行前端页面间传值及hibernate异常:a different object with the same identifier value was already associated with the session的总结

2017-3-16 我使用SSH框架在做单表CRUD的更新操作时遇到了一个问题,就是页面间该怎么传值?解决该需求时引发了一系列的bug,趁还记得好好总结一番. 前端页面间传值 情景:在我查出所以记录后,点击修改会链接到新的修改页面. 问题:该新页面没有之前的实体信息,该如何传递要修改的实体信息给该页面,例如id? 思路1:利用struts的action来传值. 1 <form action="deleteSerCate.action" method="post"

后端设置cookie写不到前端页面

javax.servlet.http.Cookie cookie = new javax.servlet.http.Cookie("id",session.getId()); cookie.setPath("/"); cookie.setDomain(".kuangke.com"); cookie.setMaxAge(-1); response.addCookie(cookie); 如果存在注解@ResponseBody 则写不到前端页面,具体原

web前端页面性能优化小结

转自blueidear:http://bbs.blueidea.com/thread-2936073-1-1.html PS:结合了精英的思想和自己的一些小小的总结~ 影响用户访问的最大部分是前端的页面.网站的划分一般为二:前端和后台.我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为文章发表评论等等.而前端呢?其实应该是属于功能的表现. 而我们建设网站的目的是什么呢?不就是为了让目标人群来访问吗?所以我们可以理解成前端才是真正和用户接触的. 除了后台需要在性能上做优化外,

关于XWork从前端页面向后台List赋值的问题

最近做项目框架比较老,其中一个是Xwork与Struts类似大致用法差不多. 在做一个投票功能题目和选项的时候遇到的问题,一个题目对应多个选项. Action: List list = new ArrayList();//Struts2中可以这么写 List list = new XWorkList();//在XWork中需要这样写 前端页面: list[index].value;//这样就可以赋值了,这里和struts是一样的