struts-menu与velocity
来源:互联网 发布:视频制作软件图标 编辑:程序博客网 时间:2024/06/05 19:30
Velocity 是一个基于 Java 的模板引擎,它提供了简单的基于模板的语言,可以用类似脚本的方式引用对象。Velocity 促进了分离团队成员之间的责任:允许 Web 设计人员专注于视图(即页面的观感),而 Java 程序员专注于后端代码。把 Java 代码从页面布局中分离出来,会让 Web 应用程序未来更易维护。当 Velocity 与 Sruts 这样的 MVC 框架结合时,就成了 JSP 或 PHP 可行的替代。
特点:
模板引擎中最强大、使用最频繁的功能之一是它通过内建的映像(Reflection)引擎查找对象信息的能力。这个映像引擎允许用一种方便的Java“.”类似的操作符,提取任意加入到VelocityContext的对象的任何公用方法的值,或对象的任意数据成员。
作用:
1.允许我们在模版中设定变量,然后在运行时,动态的将数据插入到模版中,替换这些变量。
2.有用来比较和迭代的内建指令,通过这些指令我们可以完成程序语言中的条件判断语句和循环语句等
3.模板引擎最常见的用途是处理HTMLWeb内容。但我还用模板引擎生成过SQL、email、XML甚至Java源代码。
struts-menu与velocity三级菜单的实现:
vm文件:
#macro( displaySingleMenu $menu )#if ($displayer.isAllowed($menu)) #set ($title = $displayer.getMessage($menu.title)) #if (!$menu.url) #set ($url="javascript:void(0)") #else #set ($url=$menu.url) #end <li class="#if ($menu.name == $currentMenu)active#end"> <a href="$url" title="$title" #if($menu.target)target="$menu.target" #end#if($menu.width)style="width: ${menu.width}px"#end>${title}</a> </li> #end#end#macro( displayDropDownMenu $menu)#if ($displayer.isAllowed($menu)) #set ($title = $displayer.getMessage($menu.title)) #if (!$menu.url) #set ($url="javascript:void(0)") #else #set ($url=$menu.url) #end #set($vaildcount = 0) #foreach ($menuIt in $menu.components) #if($displayer.isAllowed($menuIt)) #set($vaildcount = 1) #end#end#if($vaildcount == 1) <li class="dropdown"> <a href="$url" title="$title" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">${title}<span class="caret"></span></a> <ul class="dropdown-menu"> #foreach ($menuIt in $menu.components) #if ($menuIt.components.size() == 0)#displaySingleMenu($menuIt) #else#displayDropDownSubMenu($menuIt) #end #end </ul></li>#else #displaySingleMenu($menu)#end #end#end#macro( displayDropDownSubMenu $menu)#if ($displayer.isAllowed($menu)) #set ($title = $displayer.getMessage($menu.title)) #if (!$menu.url) #set ($url="javascript:void(0)") #else #set ($url=$menu.url) #end #if ($menu.components.size() == 0)#displaySingleMenu($menu) #else <li class="dropdown-submenu"><a href="$url" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">${title}</a> <ul class="dropdown-menu" role="menu"> #foreach ($menuIt in $menu.components) #if ($menuIt.components.size() == 0)#displaySingleMenu($menuIt) #else#displayDropDownSubMenu($menuIt) #end #end </ul> </li> #end #end#end#macro( displayCssMenu $menu ) #if ($displayer.isAllowed($menu)) ## create a single menu item #if ($menu.components.size() == 0) #displaySingleMenu($menu) #else ## create multiple menu items in a menu #displayDropDownMenu($menu) #end #end#end#displayCssMenu($menu)
jsp页面:
<%@ include file="/common/taglibs.jsp"%><menu:useMenuDisplayer name="Velocity" config="navbarMenu.vm" permissions="rolesAdapter"><div class="nav-collapse collapse"><ul class="nav"> <c:if test="${empty pageContext.request.remoteUser}"> <li class="active"> <a href="<c:url value="/login"/>"><fmt:message key="login.title"/></a> </li> </c:if><menu:displayMenu name="MainMenu"/> <menu:displayMenu name="UserMenu"/> <menu:displayMenu name="AdminMenu"/></ul></div></menu:useMenuDisplayer>
<?xml version="1.0" encoding="UTF-8"?><MenuConfig> <Displayers> <Displayer name="Velocity" type="net.sf.navigator.displayer.VelocityMenuDisplayer"/> </Displayers> <Menus><Menu name="MainMenu" title="mainMenu.title" page="/mainMenu" roles="ROLE_ADMIN,ROLE_USER"/> <Menu name="UserMenu" title="menu.user" description="User Menu" page="/userform" roles="ROLE_ADMIN,ROLE_USER"/> <Menu name="AdminMenu" title="menu.admin" description="Admin Menu" roles="ROLE_ADMIN" page="/admin/users"> <Item name="ViewUsers" title="menu.admin.users" page="/admin/users"/> <Item name="ActiveUsers" title="mainMenu.activeUsers" page="/admin/activeUsers"/> <Item name="ReloadContext" title="menu.admin.reload" page="/admin/reload"/> <Item name="FileUpload" title="menu.selectFile" page="/fileupload"/> </Menu> </Menus></MenuConfig>
0 0
- struts-menu与velocity
- Velocity与Struts集成
- Velocity与struts结合
- Velocity与struts结合
- Velocity与Struts集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成
- Velocity与struts的结合
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成
- Struts 与 Velocity 的集成1
- Struts 与 Velocity 的集成2
- Struts 与 Velocity 的集成3
- Velocity 1.5 与 Struts 2.0 的集成
- Struts 与 Velocity 的集成(转)
- Velocity与Struts验证用户登录
- Struts与Velocity模板引擎集成
- 菜鸟学Android(六):两种解析思想
- ios 小知识集锦
- oracle命令语句
- TDD-LTE与FDD-LTE区别之双工模式与帧结构
- shiro注解@RequiresPermissions多权限
- struts-menu与velocity
- 头肩顶
- Spring基于annotation的依赖注入实现
- 24 Swap Nodes in Pairs
- Java 网络编程(一)
- JavaScript常用方法函数汇集
- 加载本地大图后Bitmap oom的处理
- 通过SharedPreferences 把list数据放在内存,和读取list数据
- Docker 使用方法总结之:容器的基本操作