Я планирую перенести приложение из Websphere 7 в Websphere 9. Это развернутое приложение, которое отлично работает на WAS7, и я не вносил в него никаких изменений, кроме перехода на WAS9 на моем локальном сервере.
Однако при переносе этого приложения на локальный компьютер с WAS9 с пакетом обновления 6 я сталкиваюсь с проблемами рендеринга JSP, т. Е. Порядок отображения текстовых полей в локальном WAS9 (SP6) отличается от порядка, в котором текстовые поля отображаются в локальном WAS9 с пакетом обновления 1.
Результаты WAS9 (SP1) для JSP соответствуют ожидаемым и аналогичны удаленному развернутому производственному коду WAS7.
Существует только один файл jsp, и в нем есть несколько операторов if-else (прилагаются ниже), которые отображают текст в соответствии с типом данных поступающего ввода.
Что я проанализировал, так это то, что для WAS9 (SP6) он выбирает случайный порядок этих блоков else-if, хотя в зависимости от типа данных этого блока else-if, но не в последовательности.
Результаты WAS9 SP6: введите описание изображения здесь
Результаты WAS9 SP1: введите описание изображения здесь
else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Integer")) { %>
<td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
<%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Date")) { %>
<td> <%=methods[i].getName().substring(3) %>: </td> <td> <%=methods[i].getName().substring(3)%> </td>
<%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Calendar")) { %>
<td> <%=methods[i].getName().substring(3) %>: </td> <td> <%=methods[i].getName().substring(3)%> </td>
<%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("XMLGregorianCalendar")) { %>
<td> <%=methods[i].getName().substring(3) %>: </td> <td> <%=methods[i].getName().substring(3)%> </td>
<%}else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("String")) { %>
<td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
<% }else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("int")) { %>
<td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
<% }else if (methods[i].getParameterTypes()[0].getSimpleName().equalsIgnoreCase("Short")) { %>
<td> <%=methods[i].getName().substring(3) %>: </td> <td> <input name='<%=methods[i].getName().substring(3)%>'/> </td>
<% }
Вопрос: с использованием WAS9 SP6, есть ли какое-либо исправление, позволяющее развернуть исходный продукт и использовать тот же вывод, что и у WAS9 (SP1)? У меня нет возможности развернуть код с помощью SP1, потому что удаленный сервер также содержит SP6 для WAS9.
Последнее переписывает JSP для получения ожидаемых результатов.