Невозможно отобразить данные, используя $ {data} в jsp, в то время как request.getAttribute ("data") действительно возвращает значение - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь создать веб-приложение, используя сервлет, но столкнулся с этой проблемой, когда я только что установил свои данные в классе сервлета и обработал их в jsp, используя $ {}

JSP --->

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<c:out value="${data}"/>
<%= request.getAttribute("data") %>
</body>
</html>

Класс сервлета:

public class Naveen extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        Object data = "Some data, can be a String or a Javabean";
        request.setAttribute( "data", data );
        RequestDispatcher rd = request.getRequestDispatcher( "/new.jsp" );
        rd.forward( request, response );
        response.getWriter().append( "Served at:" ).append( request.getContextPath() );
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet( request, response );
    }

}

Ответы [ 2 ]

3 голосов
/ 24 апреля 2019

Вам нужно использовать requestScope в c:out

<c:out value="${requestScope.data}">

Для подробного примера вы можете обратиться: https://www.journaldev.com/2090/jstl-tutorial-jstl-tags-example

Я думаю, что вы непосредственнозвонит /new.jsp!Для получения значения необходимо позвонить по URL сервлета.Это решит вашу проблему, потому что запрос сервлета отправляется на /new.jsp со значением атрибута data.

0 голосов
/ 24 апреля 2019

Попробуйте это в своем файле jsp: Добавление isELIgnored = false

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" isELIgnored="false" %>

Этот атрибут должен быть включен по умолчанию. Вы можете добавить его на каждую страницу jsp, чтобы сделать EL(Язык выражений) успешно завершен.

...