近来工作中要用到appfuse2,狂抓拉一通。总算有点小获。特此记录,以备忘记。 要增加一个菜单。首先在menu.jsp中增另一个menu
<%@ 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-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
>
注意menu的name要一致。
<
Item name
=
"
questionNavigator
"
title
=
"
menu.userArea.question
"
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
>
为什么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
>
最后看资源文件 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
=
搜索
这是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-config.xml中加入menu







roles ="ROLE_ADMIN,ROLE_USER" />

page ="/editProfile.html" roles ="ROLE_ADMIN,ROLE_USER" />

roles ="ROLE_ADMIN,ROLE_USER" />

roles ="ROLE_ADMIN" width ="120" page ="/users.html" >


page ="/activeUsers.html" />






description="UserArea Menu"
roles="ROLE_USER" width="120" page="/mainMenu.html">

page="/questionNavigator.html"/>

page="/activeUsers.html"/>

page="/reload.html"/>

page="/uploadFile!start.html"/>

page="/flushCache.html"/>



roles ="ROLE_ADMIN,ROLE_USER" />


注意menu的name要一致。

page = " /questionNavigator.html " />
这个要指向当点击菜单时跳转的的url
在struts.xml中有这个定义



为什么url要以html结属呢?

ques_navigate.jsp中





















最后看资源文件 ApplicationResources_zh_CN.properties










这是jsp和配置文件中要读的中文。