C: out tag в jstl - PullRequest
       1

C: out tag в jstl

1 голос
/ 11 октября 2011

Я новичок в jstl. Это мой код.

hello.jsp

  <%@ page contentType="text/html" %> 
 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
 <html> 
 <body> 
  <form method="GET" action="jstl-choose-tag.jsp" > 
 Select an operation and click the button<br /><br /> 
<input type="radio" name="radioBtnGroup" value="uCaseOp" />Convert a string to upper    Case<br /> 
<input type="radio" name="radioBtnGroup" value="lCaseOp" />Convert a string to lower Case<br /> 

 <br /> 
<input type="Submit" /> 
 </form> 


 </body> 
 </html> 

JSTL-выбрать-tag.jsp:

   <%@ page contentType="text/html" %> 
   <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
   <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 

  <html> 
  <body>
    <c:if test="${pageContext.request.method=='GET'}">
    <c:out value="${param.radioBtnGroup}" />
  <c:out value="${param.radioBtnGroup}" />
  </c:if> 

<a href="hello.jsp"> Back</a> 
  </body> 
 </html> 

вывод, который я получаю

 ${param.radioBtnGroup} ${param.radioBtnGroup}

Может ли кто-нибудь помочь мне. Спасибо заранее.

Ответы [ 3 ]

2 голосов
/ 11 октября 2011

Симптомы указывают, что теги JSTL были успешно проанализированы и выполнены (в противном случае вы вообще не увидите ${foo} в браузере), но выражения EL не оцениваются (вы видите буквально ${foo} вбраузер).

Это может произойти, если ваш web.xml не объявлен как соответствующий как минимум Servlet 2.4 / JSP 2.0.Если ваш web.xml объявлен как соответствующий сервлету 2.3 или ниже или имеет некорректное объявление, то выражения EL в совместимых с JSP 2.0 тегах не будут оцениваться вообще.

Для правильных web.xml примеров объявлений проверьтенижняя часть нашей вики-страницы JSTL .Если вы нацелены на контейнер с Servlet 2.5 (например, Tomcat 6.0, Glassfish 2.x и т. Д.), Тогда ваш web.xml должен быть объявлен как Servlet 2.5:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
    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">

    <!-- Config here. -->

</web-app>
0 голосов
/ 11 апреля 2019

На самом деле вы не включили jar-файл, который должен быть там для запуска любого jstl. Если вы используете Maven, вы можете добавить зависимости, в противном случае вам нужно добавить JAR-файл. нажмите сюда для справки

0 голосов
/ 09 мая 2012

На библиотеки тегов el должна ссылаться

<%@ taglib prefix = "c" uri = "http://java.sun.com/jstl/core" %>

НЕ ПО

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Если спрашивающий переключит его, есть большая вероятность, что он подберет нужную библиотеку, если соответствующий путь находится в пути к классам. Любопытно, что это сработало для меня, хотя я и объявил сервлет 2.3 (не 2.4 или более поздний) в своем файле web.xml, так что это не кажется критическим Я использую Tomcat в качестве моего контейнера сервлетов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...