我必须检查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输入字段中使用它,它可以正常工作。另一种选择是什么?任何输入?
答案 0 :(得分:1)
您不能只将<c:if>
标记放在<html:text>
标记声明中。它仅支持定义的here等属性。
这就是抱怨<c:if
属性无效的错误原因。它将它视为另一个属性,它不存在。所以我认为你在代码中尝试的是不可能的。
正如您所提到的,包括HTML中的<c:if>
可以正常工作。我希望它看起来像这样:
...
<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>
/>
...
答案 1 :(得分: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>