невозможно распечатать значения пользовательского тега jsp ‹% %›

У меня проблема с печатью переменной в пользовательских тегах Jsp. При использовании приведенного ниже кода c:out ничего не печатает, а при попытке использовать атрибут по умолчанию в c:out печатает значение по умолчанию, что означает, что переменная имеет значение null, а это не так. вот мой код.

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <% int x = 1;%>
 <c:out value="${x}" />

КАК я могу сделать эту работу


person Aly Afifi    schedule 25.08.2015    source источник
comment
каков результат, который вы получаете? вы получаете ${x} ?   -  person QuakeCore    schedule 25.08.2015
comment
ничего (пустая страница)   -  person Aly Afifi    schedule 25.08.2015
comment
дайте мне знать, если у вас все еще есть та же проблема, после использования решения, которое я разместил ниже   -  person QuakeCore    schedule 25.08.2015
comment
x — это переменная сценария. Чтобы использовать его как переменную с областью видимости, вы должны поместить ее в область видимости.   -  person rickz    schedule 25.08.2015
comment
Вот один из способов. ‹c:set var=x значение=‹%=x%› /›   -  person rickz    schedule 25.08.2015
comment
Или сделать это в скриптлете. pageContext.setAttribute(х, х);   -  person rickz    schedule 25.08.2015
comment
Спасибо @rickz теперь работает   -  person Aly Afifi    schedule 26.08.2015


Ответы (1)


Если вы хотите напечатать объявленную переменную в теге scriptlet, используя тег c:out, вы можете сделать это указанным ниже способом.

Установите переменную в контексте страницы под именем переменной и оцените значение с помощью выражений EL

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head>
<title></title>
</head>
<body>
<%
   int x = 1;
  //set variable x in the page context under the variable name "var_x"
  pageContext.setAttribute("var_x",x);
%>
<c:out value="${var_x}" />
</body>
</html>

Подробнее см. в этом руководстве. Наиболее часто используемый тег JSTL, который используется для отображения результата выражений

person Bacteria    schedule 25.08.2015
comment
Спасибо, это сработало для меня - person Aly Afifi; 26.08.2015