jsp:forward в Java, не используя тег JSP?

IMP[i] = Double.parseDouble(split[1])

Измените это на:

IMP[i] = Double.parseDouble(split[i+1])

вы получаете только второй элемент из массива IMP, равный 1,03.

РЕДАКТИРОВАТЬ

Заменить цикл while на:

int i = 0;
while(i < split.length){
    IMP[i] = Double.parseDouble(split[i]);
    i++;
}
double lastValue = IMP[i - 1];
while(i < years){
    IMP[i] = lastValue;
    i++;
}

Это должно помочь, если вы хотите повторить последнее значение для оставшейся части числа лет. Если у вас возникли какие-либо проблемы, попробуйте заменить Double.parseDouble(split[i]) на Double.parseDouble(split[i + 1]) или попытаться отладить и посмотреть, какие значения есть в каких переменных во время выполнения.

11
задан Chris Carruthers 28 October 2008 в 23:15
поделиться

3 ответа

someObject Вы ищете, pageContext.

Этот объект неявно определяется в JSP, таким образом, можно использовать его как это:

pageContext.forward("<some relative jsp>");
29
ответ дан 3 December 2019 в 01:34
поделиться

Действительно необходимо стараться избегать scriplets, если Вы можете, и в Вашем случае, большом количестве из того, что Вы делаете, может быть заменен кодом JSTL. Следующая замена для Вашего примера является намного более чистой, IMO:

<%
  // Consider moving to a servlet or controller/action class
  String errorMessage = SomeClass.getInstance().doSomething();
  pageContext.setAttribute("errorMessage", errorMessage);
%>
<c:choose>
  <c:when test="${not empty errorMessage}">
    <c:set var="error" scope="session" value="${errorMessage}" />
    <jsp:forward page="error.jsp" />
  </c:when>
  <c:otherwise>
    <c:redirect url="index.jsp" />
  </c:otherwise>
</c:choose>

Идеально, Вы изменили бы error.jsp так, чтобы сообщение об ошибке не должно было даже быть установлено на сессии, но я не хотел изменять Ваш дизайн слишком много.

7
ответ дан 3 December 2019 в 01:34
поделиться

Простой подход:

<%@page errorPage="Error.jsp" %>

<%
 String errorMessage = SomeClass.getInstance().doSomething();
 if (errorMessage != null) {
       throw new Exception(errorMessage); // Better throw the exception from doSomething()
 }
 pageContext.forward("index.jsp");
%>


Error.jsp
.........
<%@ page isErrorPage='true' %>
<%
out.print("Error!!!");  
out.print(exception.getMessage());
%>

Лучший подход:

Вызовите doSomething () от сервлета. Установите свою ошибочную страницу в web.xml

<error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/WEB-INF/jsp/Error.jsp</location>
</error-page>
3
ответ дан 3 December 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: