2

该项目基于Struts2

我正在使用 XML 制作动态菜单库。此 XML 将被解析并构建最终菜单。

XML 是:

<menus>
    <menu>
        <name>menu.level1.Home</name>
        <action>transfer-to-account-input</action>
        <namespace>transaction</namespace>
    </menu>
    <menu>
        <name>menu.level1.Accounts</name>
        <action>accounts-summary</action>
        <namespace>account</namespace>
    </menu>
</menus>

我使用 JSTL 来解析 XML

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<x:forEach select="$docRoot/menus/menu" var="menuvar">
    <c:set var="menuName">
        <x:out select="$menuvar/name" />
    </c:set>    
    <c:out value="${menuName}"/>
    <s:text name="%{menuName}" />
    ..... // s:url shoul also be called
</x:forEach>

问题是c:out标签显示正确的值,就像menu.level1.Home我通过这个参数s:text从 struts 资源包中获取值一样。但它不起作用。

那么,问题是如何将参数从c:setto传递s:text

顺便说一句,有没有更好的从 XML 制作菜单的解决方案?

4

1 回答 1

1

Try

<s:property value="%{#attr.menuName}" />

Not sure about xml but you can build menu from sj:menu tag

于 2013-09-16T13:38:00.463 回答