1.5.2.2. 添加自定义菜单

1、定义菜单项:

以文档菜单为例,在\webapps\seeyon\WEB-INF\cfgHome\plugin\doc\spring 下新建一个 xml 文件(如 docAddinMenu.xml)。代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="byName" default-lazy-init="false" default-dependency-check="none">
<!-- 自定义加载项菜单,如果要添加多个菜单项,可以在当前的XML文件中定义多个bean,也可 以建立多个XML文件,在menu.xml注册 -->
<bean id="docAddinMenuItem" class="com.seeyon.ctp.common.thirdparty.menu.ThirdpartyAddinMenu" init-method="init">
    <!--菜单添加的功能模块(页面),与页面Controller中定义的的名称相同,可以在多个页面 中添加同一菜单项 -->
    <property name="module">
        <list>
            <value>apps/doc/rightNew</value>
        </list>
    </property>
    <!--菜单文本,在资源文件中的名称。 -->
    <property name="label" value="doc.menu.export.label"/>
    <!--菜单链接,目前只支持javascript,对于文档交换,可以调用thirdPMenuSend方法,它会 将选中的id发送到指定的地址 -->
    <property name="url" value="http://xxxxxx"/>
    <!--显示顺序 -->
    <property name="index" value="0"/>
</bean>
</beans>

2、指定菜单要添加到的页面 修改 docAddinMenu.xml 文件,将要显示的页面列在 module 下面。如:

<property name="module">
    <list>
        <value>apps/doc/rightNew</value>
    </list>
</property>

此段代码中”/doc/rightNew”是根据执行流程来找到要添加菜单页面的地址的。执行流程可以根据页面属性查看页 面请求的地址如 doc.do?meithod=rightNew&…,然后到 webapps\seeyon\WEB-INF\classes 目录下找 urlMapping,找到 prop key=doc.do 对应的控制文件:docController,进入 classes 目录下的 doc-controller.xml 文件根据 id=”docController”的 bean 的 class 值找到处理文件(如 com/seeyon/ctp/doc/controller/DocController),根据处理方法 rightNew(与上面的 doc.do?method=rightNew&…相对应)找到 rightNew。

3、指定菜单文本在资源文件中的名称

修改 docAddminMenu.xml 文件,给 label 加上值。value 值指定的是在页面上要显示的值,这里不直接写上内容是为了后面显示国际化做准备。

<property name="label" value="doc.menu.export.label"/>

4、指定点击菜单后进入的页面地址

修改 docAddinMenu.xml 文件的 url 值,可以是网址,也可以是 javascript。

<property name="url" value="/seeyon/doc/docFile.jsp"/>

5、国际化

在 \webapps\seeyon\WEB-INF\cfgHome\plugin\doc\i18n 文件夹下新建或修改 DocMenuResources_en.properties 和 DocMenuResources_zh_CN.properties 文件,在 DocMenuResources_en.properties 中添加当是英文显示的时候要显示的值。如:

doc.menu.export.label=export

在 DocMenuResources_zh_CN.properties 中添加用汉语要显示的值。如:

doc.menu.export.label=归档到文档系统

用命令将 DocMenuResources_zh_CN.properties 编译,如:

native2ascii 文件名 新文件名

编译结果如:

doc.menu.export.label==\u5F52\u5230\u6863\u6848\u7CFB\u7EDF