How to use <c:out value=...> taglib

14,082

Your taglib URI is incorrect, you're using the URI of the old pre-expression, pre-JSP 2.0 library.

Instead of

http://java.sun.com/jstl/core

it should be

http://java.sun.com/jsp/jstl/core

Share:
14,082
artaxerxe
Author by

artaxerxe

Updated on June 04, 2022

Comments

  • artaxerxe
    artaxerxe almost 2 years

    I have the class A:

    package a;
    
    public class A {
    private int x = 9;
    
    public int getX() {
        return x;
    }
    }
    

    and the ajsp.jsp file:

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <jsp:useBean id = "a" class = "a.A" />
    <c:out value = "${a.x}" />
    </body>
    </html>
    

    when i run it, it gives an error :

    • org.apache.jasper.JasperException: /ajsp.jsp(11,0) PWC6236: According to TLD or attribute directive in tag file, attribute value does not accept any expressions

    if instead of <c:out value = "${a.x}" /> i use <jsp:getProperty property="x" name="a"/> it goes perfect. So, what is the problem? Thank advance.