Я должен проверить условие в теге 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, он отлично работает. Каков другой вариант? любые входы?
Ответ 1 · рейтинг 1 · Jonathan
Вы не можете просто поместить тег <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>
/>
...
Ответ 2 · рейтинг 1 · GriffeyDog
Переместите <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>