Как получить переменную области запроса с помощью JSTL на Struts 1 - PullRequest
0 голосов
/ 24 ноября 2010

Я выполняю рефакторинг некоторого унаследованного кода, который использует Struts 1 (пожалуйста, без пламени), и мне трудно получить параметр, который я установил в своем классе Action.Вот код, который я использую в своем jsp:

Я устанавливаю переменную submissionFailure в классе действий, но когда я пытаюсь

<c:out value="${requestScope[cardHolderZipCode]}" />

или

<c:out value="${requestScope.property[submissionFailure]}" />

Однако ничего не выводится.

Я поместил следующий код в мой JSP, и я вижу значение в карте requestScope:

<b><i>Request Scope</i></b><br/> <c:forEach items="${requestScope}" varStatus="status" var="parameter"> <c:out value="${parameter}"/><br/><br/><br> </c:forEach>

Но я все еще не могу получить переменнуюиз.Кто-нибудь может мне помочь или у меня просто момент ID-10-T?

Ответы [ 2 ]

1 голос
/ 29 ноября 2010

Это был момент ID-10-T с моей стороны.Я слишком старался.Вот код, который я использовал в итоге:

<c:choose>
    <c:when test="${submissionFailure}">
         <%-- Do something --%>
    </c:when>
    <c:otherwise>
         <%-- Do something else --%>
    </c:otherwise>
</c:choose>
1 голос
/ 25 ноября 2010

Может случиться так, что ваш класс Action не является JavaBean (то есть, нет метода получения в поле submissionFailure). Из ссылки Struts1 :

Во-первых, ваш бин ActionForm должен иметь конструктор с нулевыми аргументами. Это требуется, потому что рамки должны быть возможность динамически создавать новые экземпляры вашего класса бобов формы, зная только имя класса. Это не обременительное ограничение, однако, потому что рамки будут также заполнить вашу форму бобов свойства (из запроса параметры) для вас.

Во-вторых, поля вашей формы bean сделаны доступными для структуры поставка общественного геттера и сеттера методы, которые следуют дизайну именования шаблоны, описанные в JavaBeans Спецификация. Для большинства пользователей это означает использование следующей идиомы для каждый из свойств вашего компонента:

private {type} fieldName;

public {type} getFieldName() {
  return (this.fieldName);
}
public void setFieldName({type} fieldName) {
  this.fieldName = fieldName;
}

Если это не поможет, то вам следует рассмотреть возможность размещения соответствующих частей вашего класса Action в своем вопросе, чтобы улучшить отладку.

...