Посмотрите на JSTL .Он предлагает как минимум базовый набор тегов core для управления потоком на странице.Используйте это вместо if
/ else
/ switch
независимо от скриптлетов .Он также предлагает несколько служебных методов в functions taglib.Этим предлагаются основные String
операции, такие как подстрока и т. Д.Вы также можете самостоятельно создать собственные EL-функции, которые могут вызывать public static
методы с аргументами.
См. Также:
Обновление согласно информации вкомментарий
Они принимают решения на основе переменных экземпляра в классе и отвечают соответственно
Вы можете добавить геттеры для этих переменных и использовать этов <c:if>
или в любом другом месте.
<c:if test="${bean.property == 'somevalue' && bean.otherproperty != 'foo'}">
Вы можете даже обернуть это в логический метод получения в бине, если эти значения являются, например, константами.
public boolean isCondition() {
return "somevalue".equals(property) && !"foo".equals(otherproperty);
}
, которые вы используете следующим:
<c:if test="${bean.condition}">
Есть много способов, в зависимости от конкретного функционального требования, которое все еще неясно в вашем вопросе.
См. Также:
Обновление2 : согласно новому примеру в вашем вопросе, особенности представления должны быть в представлении (JSP).Bgcolor является частью презентации.Я бы предложил заменить это перечислением.
public enum Status {
OK, FAIL, NONE;
}
public Status getStatus() {
if (this.getJavaBuildTotal() > 0 &&
this.getJavaBuildBroke() == 0 &&
this.getCeeBuildBroke() == 0 &&
this.getJavaBuildInvalid() == 0 &&
!this.hasBuildException()) {
return OK;
}
else if (this.getJavaBuildTotal() == 0 && this.getCeeBuildTotal() == 0) {
return NONE;
}
return FAIL;
}
И объявить цвет в представлении
<c:set var="bgcolor" value="${(build.status == 'OK') ? '#00ff00' : (build.status == 'FAIL') ? '#ff0000' : '#f7f814'}" />
...
<tr bgcolor="${bgcolor}">
Или, лучше, сделать из него CSS-класс
<tr class="build ${build.status}">
со стилем (лист)
tr.build.OK { background: #00ff00; }
tr.build.FAIL { background: #ff0000; }
tr.build.NONE { background: #f7f814; }