Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将参数从c:out标记传递到struts s:text标记_Java_Xml_Jsp_Struts2_Jstl - Fatal编程技术网

Java 将参数从c:out标记传递到struts s:text标记

Java 将参数从c:out标记传递到struts s:text标记,java,xml,jsp,struts2,jstl,Java,Xml,Jsp,Struts2,Jstl,该项目基于Struts2 我正在使用XML创建一个动态菜单库。将解析此XML并构建最终菜单 XML是: <menus> <menu> <name>menu.level1.Home</name> <action>transfer-to-account-input</action> <namespace>transaction</namespace>

该项目基于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>

menu.level1.Home
转入账户输入
交易
menu.level1.Accounts
帐目摘要
账户
我已经使用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>

..... // s:url也应该被称为
问题是
c:out
标记显示正确的值,如
menu.level1.Home
我将
s:text
传递给此参数,以从struts资源包中获取值。但它不起作用

因此,问题是如何将参数从
c:set
传递到
s:text

顺便问一下,有没有更好的解决方案可以从XML创建菜单?

试试看

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

不确定xml,但您可以从标记构建菜单