近来工作中要用到appfuse2,狂抓拉一通。总算有点小获。特此记录,以备忘记。 要增加一个菜单。首先在menu.jsp中增另一个menu
然后在menu-config.xml中加入menu
注意menu的name要一致。
这个要指向当点击菜单时跳转的的url
在struts.xml中有这个定义
为什么url要以html结属呢?
ques_navigate.jsp中
最后看资源文件 ApplicationResources_zh_CN.properties
这是jsp和配置文件中要读的中文。
<%@ include file="/common/taglibs.jsp"%>
<menu:useMenuDisplayer name="Velocity" config="cssHorizontalMenu.vm" permissions="rolesAdapter">
<ul id="primary-nav" class="menuList">
<li class="pad"> </li>
<c:if test="${empty pageContext.request.remoteUser}"><li><a href="<c:url value="/login.jsp"/>" class="current"><fmt:message key="login.title"/></a></li></c:if>
<menu:displayMenu name="MainMenu"/>
<menu:displayMenu name="UserAreaMenu"/>
<menu:displayMenu name="PeopleMenu"/>
<menu:displayMenu name="UserMenu"/>
<menu:displayMenu name="AdminMenu"/>
<menu:displayMenu name="Logout"/>
</ul>
</menu:useMenuDisplayer>
<menu:useMenuDisplayer name="Velocity" config="cssHorizontalMenu.vm" permissions="rolesAdapter">
<ul id="primary-nav" class="menuList">
<li class="pad"> </li>
<c:if test="${empty pageContext.request.remoteUser}"><li><a href="<c:url value="/login.jsp"/>" class="current"><fmt:message key="login.title"/></a></li></c:if>
<menu:displayMenu name="MainMenu"/>
<menu:displayMenu name="UserAreaMenu"/>
<menu:displayMenu name="PeopleMenu"/>
<menu:displayMenu name="UserMenu"/>
<menu:displayMenu name="AdminMenu"/>
<menu:displayMenu name="Logout"/>
</ul>
</menu:useMenuDisplayer>
然后在menu-config.xml中加入menu
<?
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.html"
roles ="ROLE_ADMIN,ROLE_USER" />
< Menu name ="UserMenu" title ="menu.user" description ="User Menu"
page ="/editProfile.html" roles ="ROLE_ADMIN,ROLE_USER" />
< Menu name ="PeopleMenu" title ="menu.viewPeople" page ="/persons.html"
roles ="ROLE_ADMIN,ROLE_USER" />
< Menu name ="AdminMenu" title ="menu.admin" description ="Admin Menu"
roles ="ROLE_ADMIN" width ="120" page ="/users.html" >
< Item name ="ViewUsers" title ="menu.admin.users" page ="/users.html" />
< Item name ="ActiveUsers" title ="mainMenu.activeUsers"
page ="/activeUsers.html" />
< Item name ="ReloadContext" title ="menu.admin.reload" page ="/reload.html" />
< Item name ="FileUpload" title ="menu.selectFile" page ="/uploadFile!start.html" />
< Item name ="FlushCache" title ="menu.flushCache" page ="/flushCache.html" />
< Item name ="Clickstream" title ="menu.clickstream" page ="/clickstreams.jsp" />
</ Menu >
<Menu name="UserAreaMenu" title="menu.userArea"
description="UserArea Menu"
roles="ROLE_USER" width="120" page="/mainMenu.html">
<Item name="questionNavigator" title="menu.userArea.question"
page="/questionNavigator.html"/>
<Item name="ActiveUsers" title="menu.userArea.favorite"
page="/activeUsers.html"/>
<Item name="ReloadContext" title="menu.userArea.satisfy"
page="/reload.html"/>
<Item name="FileUpload" title="menu.userArea.error"
page="/uploadFile!start.html"/>
<Item name="FlushCache" title="menu.userArea.essence"
page="/flushCache.html"/>
</Menu>
< Menu name ="Logout" title ="user.logout" page ="/logout.jsp"
roles ="ROLE_ADMIN,ROLE_USER" />
</ Menus >
</ MenuConfig >
< MenuConfig >
< Displayers >
< Displayer name ="Velocity" type ="net.sf.navigator.displayer.VelocityMenuDisplayer" />
</ Displayers >
< Menus >
< Menu name ="MainMenu" title ="mainMenu.title" page ="/mainMenu.html"
roles ="ROLE_ADMIN,ROLE_USER" />
< Menu name ="UserMenu" title ="menu.user" description ="User Menu"
page ="/editProfile.html" roles ="ROLE_ADMIN,ROLE_USER" />
< Menu name ="PeopleMenu" title ="menu.viewPeople" page ="/persons.html"
roles ="ROLE_ADMIN,ROLE_USER" />
< Menu name ="AdminMenu" title ="menu.admin" description ="Admin Menu"
roles ="ROLE_ADMIN" width ="120" page ="/users.html" >
< Item name ="ViewUsers" title ="menu.admin.users" page ="/users.html" />
< Item name ="ActiveUsers" title ="mainMenu.activeUsers"
page ="/activeUsers.html" />
< Item name ="ReloadContext" title ="menu.admin.reload" page ="/reload.html" />
< Item name ="FileUpload" title ="menu.selectFile" page ="/uploadFile!start.html" />
< Item name ="FlushCache" title ="menu.flushCache" page ="/flushCache.html" />
< Item name ="Clickstream" title ="menu.clickstream" page ="/clickstreams.jsp" />
</ Menu >
<Menu name="UserAreaMenu" title="menu.userArea"
description="UserArea Menu"
roles="ROLE_USER" width="120" page="/mainMenu.html">
<Item name="questionNavigator" title="menu.userArea.question"
page="/questionNavigator.html"/>
<Item name="ActiveUsers" title="menu.userArea.favorite"
page="/activeUsers.html"/>
<Item name="ReloadContext" title="menu.userArea.satisfy"
page="/reload.html"/>
<Item name="FileUpload" title="menu.userArea.error"
page="/uploadFile!start.html"/>
<Item name="FlushCache" title="menu.userArea.essence"
page="/flushCache.html"/>
</Menu>
< Menu name ="Logout" title ="user.logout" page ="/logout.jsp"
roles ="ROLE_ADMIN,ROLE_USER" />
</ Menus >
</ MenuConfig >
注意menu的name要一致。
<
Item name
=
"
questionNavigator
"
title
=
"
menu.userArea.question
"
page = " /questionNavigator.html " />
page = " /questionNavigator.html " />
这个要指向当点击菜单时跳转的的url
在struts.xml中有这个定义
<
action name
=
"
questionNavigator
"
class
=
"
com.opensymphony.xwork2.ActionSupport
"
>
< result name = " success " >/ WEB - INF / pages / userarea / ques_navigate.jsp </ result >
</ action >
< result name = " success " >/ WEB - INF / pages / userarea / ques_navigate.jsp </ result >
</ action >
为什么url要以html结属呢?
<
constant name
=
"
struts.action.extension
"
value
=
"
html
"
/>
ques_navigate.jsp中
<%
@ include file
=
"
/common/taglibs.jsp
"
%>
< head >
< title >< fmt:message key = " mainMenu.title " /></ title >
< meta name = " heading " content = " <fmt:message key='mainMenu.heading'/> " />
< meta name = " menu " content = " MainMenu " />
</ head >
< p >< fmt:message key = " mainMenu.message " /></ p >
< div class = " separator " ></ div >
< ul class = " glassList " >
< li >< a href = " <c:url value='/editProfile.html'/> " >< fmt:message
key = " menu.userArea.question.ask " /></ a ></ li >
< li >< a href = " <c:url value='/uploadFile!start.html'/> " >< fmt:message
key = " menu.userArea.question.edit " /></ a ></ li >
< li >< a href = " <c:url value= " / persons.html " /> " >< fmt:message
key = " menu.userArea.question.search " /></ a ></ li >
</ ul >
< head >
< title >< fmt:message key = " mainMenu.title " /></ title >
< meta name = " heading " content = " <fmt:message key='mainMenu.heading'/> " />
< meta name = " menu " content = " MainMenu " />
</ head >
< p >< fmt:message key = " mainMenu.message " /></ p >
< div class = " separator " ></ div >
< ul class = " glassList " >
< li >< a href = " <c:url value='/editProfile.html'/> " >< fmt:message
key = " menu.userArea.question.ask " /></ a ></ li >
< li >< a href = " <c:url value='/uploadFile!start.html'/> " >< fmt:message
key = " menu.userArea.question.edit " /></ a ></ li >
< li >< a href = " <c:url value= " / persons.html " /> " >< fmt:message
key = " menu.userArea.question.search " /></ a ></ li >
</ ul >
最后看资源文件 ApplicationResources_zh_CN.properties
#
--
用户专区
--
menu.userArea = 问题专区
menu.userArea.question = 问题
menu.userArea.favorite = 收藏夹
menu.userArea.satisfy = 满意度
menu.userArea.error = 查看勘误
menu.userArea.essence = 精华区
menu.userArea.question.ask = 提问
menu.userArea.question.edit = 编辑
menu.userArea.question.search = 搜索
menu.userArea = 问题专区
menu.userArea.question = 问题
menu.userArea.favorite = 收藏夹
menu.userArea.satisfy = 满意度
menu.userArea.error = 查看勘误
menu.userArea.essence = 精华区
menu.userArea.question.ask = 提问
menu.userArea.question.edit = 编辑
menu.userArea.question.search = 搜索
这是jsp和配置文件中要读的中文。