Отображение переменных объекта в браузере с помощью jsp
Есть такой сервлет
public class BotServlet extends HttpServlet {
private Bot bot;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
super.init();
bot = Bot.getInstance();
bot.setId(1);
bot.setName("Amigo");
bot.setSerial("777");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Enter doGet");
String action = request.getParameter("action");
System.out.println(action);
System.out.println(bot);
request.setAttribute("bot", bot);
switch (action == null ? "info" : action) {
case "update":
request.getRequestDispatcher("/WEB-INF/view/update.jsp").forward(request, response);
break;
case "info":
default:
request.getRequestDispatcher("/WEB-INF/view/bot.jsp").forward(request, response);
break;
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Enter doPost");
request.setCharacterEncoding("UTF-8");
String action = request.getParameter("action");
if (action.equals("submit")) {
bot.setId(Integer.parseInt(request.getParameter("id")));
bot.setName(request.getParameter("name"));
bot.setSerial(request.getParameter("serial"));
}
request.setAttribute("bot", bot);
request.getRequestDispatcher("/WEB-INF/view/bot.jsp").forward(request, response);
}
}
Так же есть jsp страницы в которые я передаю объект bot. Моя проблема заключается в том что я не могу достать данные (значения переменных) этого объекта. Вот пример как я это делаю в самом jsp.
<jsp:useBean id="bot" scope="request" type="com.javamaster.model.Bot"/>
<tr>
<td>ID: ${bot.id} | Name: ${bot.name} | Serial number: ${bot.serial}</td>
<td><a href="bot?action=update">Update</a></td>
</tr>
А на выходе получаю следующее. Хотя ожидаю что будет ID:1 Name: Amigo и так далее
Смысл программы такой - 2 jsp в одном я ввожу данные(меняю) в другом отображается. Сами значения меняются (проверил с помощью консоли), а вот почему не правильно отображается не могу понять.
Ответы (1 шт):
Решил проблему следующим образом. В maven добавил зависимость
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Так же в web.xml добавил следующие строки
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
Информацию по тому что именно прописывать в web.xml нашел тут https://stackoverflow.com/tags/jstl/info. Если у кого-то будет такая проблема, ищите по ссылке выше подробности. Все получится!
