3

基本上,我的问题很简单,但它需要知道 Struts 1.1 并且还活着的人。

我尝试在伪代码中构建的内容如下所示:

IF element.method1 = true THEN
   IF element.method2 = true THEN
      COLOR.GREEN, PRINT element.prop1
   ELSE
      COLOR.RED, PRINT element.prop1
   END
ELSE
   COLOR.BLACK, PRINT element.prop1
END

整个事情将发生在一个迭代中。所以这里目前正在工作但还不是目标:

<nested:equal property="method1" value="true">
    <nested:write property="prop1" /> 
</nested:equal>

<nested:notEqual property="method1" value="true">
    <nested:write property="prop1" />
</nested:notEqual>

现在真正让我发疯的是这也有效:

<nested:equal property="method1" value="true">
   <nested:equal property="method2" value="true">
   </nested:equal>                
</nested:equal>
                        
<nested:notEqual property="method1" value="true">
   <nested:write property="prop1" />
</nested:notEqual>

但是每当我在两个内部标签之间插入一些东西时,nested:equal它就不会编译。

所以我的最终解决方案(见下文)不会编译抱怨"Missing Endtag for nested:write."

<nested:equal property="method1" value="true">

   <nested:equal property="method2" value="true">
           <nested:write property="element.prop1" />
   </nested:equal>   
                        
</nested:equal>
                        
<nested:notEqual property="method1" value="true">
    <nested:write property="element.prop1" />
</nested:notEqual>

大约 4 小时后,我仍然不知道如何管理这个问题,所以任何建议都会非常感激,甚至在这篇文章发布两周后也会有所帮助,因为我的下一步是深入研究 Struts 1.1 文档。

4

2 回答 2

0

虽然 Roman C 的解决方案完美运行,但我也设法将它与嵌套标签结合在一起。

不幸的是,我不允许发布原始来源,但这就是它现在的作用和工作方式:

<nested:form action="/someReq" styleClass="standard">
    <nested:present property="myBean.genList">

        <nested:iterate property="myBean.genList" indexId="index">

            <nested:equal property="method1" value="true">

                <nested:equal property="method2" value="true">
                    <strong class="green">
                        <nested:write property="prop1" />
                    </strong>
                </nested:equal>

                <nested:notEqual property="method2" value="true">
                    <strong class="red">
                        <nested:write property="prop1" />
                    </strong>
                </nested:notEqual>

            </nested:equal>

            <nested:notEqual property="method1" value="true">
                <nested:write property="prop1" />
            </nested:notEqual>

        </nested:iterate>

    </nested:present>
</nested:form>
于 2013-07-19T15:52:09.627 回答
0

利用

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

代码看起来像

<c:choose>
  <c:when test="${element.method1 == true}"> 
    <c:choose> 
      <c:when test="${element.method2 == true}"> 
        <span style="color:green;"><c:out value="${element.prop1}/></span>
      </c:when>
      <c:otherwise>
        <span style="color:red;"><c:out value="${element.prop1}/></span>
      </c:otherwise>
    </c:choose>
  </c:when>
  <c:otherwise>
    <span style="color:black;"><c:out value="${element.prop1}/></span>
  </c:otherwise>
</c:choose>
于 2013-07-15T11:36:33.207 回答