1

我必须检查 struts 标记中的条件并启用或禁用该字段,如下所示:

<c:when test="${multipleCase=='true'}">
    <html:text property="${row.dataElementJavaName}" 
               maxlength="${row.dataElementSize}" 
               size="60" 
               value="${row.dataElementValue}"
               onkeyup="javascript:enableSave()" 
               onkeypress="return letternumber(event,'c')" 
               <c:if test="${model.readonlyStatus=='true'}">disabled</c:if> 
    />        
</c:when>

编译时出现以下错误:

Attribute: <c:if is not a valid attribute name
Encountered end tag </c:if> without corresponding start tag.

如果我在 HTML 输入字段中使用相同的,它工作正常。另一种选择是什么?任何输入?

4

2 回答 2

1

您不能只将<c:if>标签放在<html:text>标签声明中。它只支持这里定义的属性。

这就是为什么会出现抱怨<c:if属性无效的错误。它将它视为另一个不存在的属性。所以我认为您在代码中尝试的内容是不可能的。

正如您所提到的,包括<c:if>在 HTML 中会正常工作。我希望它看起来像这样:

...
<input type="text" name="${row.dataElementJavaName}" 
           maxlength="${row.dataElementSize}" 
           size="60" 
           value="${row.dataElementValue}"
           onkeyup="javascript:enableSave()" 
           onkeypress="return letternumber(event,'c')" 
           <c:if test="${model.readonlyStatus=='true'}">disabled</c:if> 
/>  
...
于 2012-12-12T21:33:39.707 回答
1

像这样移动<c:if>外部<html:text>

<c:when test="${multipleCase=='true'}">
  <c:if test="${model.readonlyStatus=='true'}">
    <html:text property="${row.dataElementJavaName}" 
               maxlength="${row.dataElementSize}" 
               size="60" 
               value="${row.dataElementValue}"
               onkeyup="javascript:enableSave()" 
               onkeypress="return letternumber(event,'c')" 
               disabled
    />   
  </c:if>     
  <c:if test="${model.readonlyStatus!='true'}">
    <html:text property="${row.dataElementJavaName}" 
               maxlength="${row.dataElementSize}" 
               size="60" 
               value="${row.dataElementValue}"
               onkeyup="javascript:enableSave()" 
               onkeypress="return letternumber(event,'c')" 
    />   
  </c:if>     
</c:when>
于 2012-12-12T22:06:49.227 回答