jspx中的<c:out value =“Test”>未在浏览器中显示</c:out>

时间:2013-09-04 19:40:20

标签: jsp maven jstl jspx

当我尝试通过添加它来测试我的jstl lib(jstl-1.1.2.jar&amp; standard-1.1.2.jar)时,它不会在浏览器中显示任何内容。

这是我的home.jspx:

<?xml version="1.0" encoding="utf-8"?>
<jsp:root
    xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns="http://www.w3.org/1999/xhtml"
    version="2.1">

<jsp:directive.page contentType="text/html" pageEncoding="UTF-8" />
<jsp:output omit-xml-declaration="true" />
<jsp:output doctype-root-element="HTML"
            doctype-system="about:legacy-compat" />

<html lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>gdgdfgdg</title>

</head>
<body>
<h1>fsdf</h1>
<c:out value="Test"/>
</body>
</html>

</jsp:root>

添加了必要的罐子。无法弄清楚问题是什么。

编辑:

这是源代码,浏览器收到:

<!DOCTYPE HTML SYSTEM "about:legacy-compat">
<html lang="en">
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
    <title>gdgdfgdg</title>
  </head>
  <body>
    <h1>fsdf</h1>
    <c:out value="TEST"/>
  </body>
</html>

我向maven添加了以下依赖项,它正如前面所描述的那样正确加载了正确的jar ..

    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency>

2 个答案:

答案 0 :(得分:0)

提供的jspx在我的环境中运行良好,Tomcat 6.0以及以下内容:

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>jstl-api</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jstl-impl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>javax.el</groupId>
    <artifactId>el-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
</dependency>

根据Apache,1.1.2 taglib应该可以在Tomcat 5.0或更高版本上运行,但是由于你在jspx的头部包含了JSP 2.1版,你需要在Servlet规范2.5或更高版本的服务器上运行,例如Tomcat 6。

您最好的选择是使用我提供的依赖项,并确保您的servlet容器是最近的。

答案 1 :(得分:-2)

尝试使用这个简单的.jsp页面,如果有的话。测试页面使用随机fmt和c功能。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ 
    taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><%@
    page contentType="text/html; charset=UTF-8" pageEncoding="ISO-8859-1"
    import="java.util.*,
    java.text.*
    "
%><%

String var0 = "Foodoo0 " + System.currentTimeMillis();
pageContext.setAttribute("var1", "Foodoo1 " + System.currentTimeMillis());
pageContext.setAttribute("var2", "Foodoo2 " + System.currentTimeMillis());

double distance = 1234.567;
pageContext.setAttribute("distance", distance);

%><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Test page</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>

var0=<%= var0 %> <br/>
var1=${var1} <br/>
<c:out value="COut Foo" /> <br/>
var2=<c:out value="${var2}" /> <br/>

<br/>
Use locale fi_FI<br/>
<fmt:setLocale value="fi_FI" scope="page" />
<c:set var="distanceEL" value="${distance}" />
fmt0=${distance} | ${distanceEL} <br/>
fmt1=<fmt:formatNumber pattern="0.0" value="${distance}" /> <br/>
fmt2=<fmt:formatNumber pattern="0.00" value="${distanceEL}" /> <br/>
fmt3=<%= new DecimalFormat("0.0").format(distance) %>

<br/>
Use locale en_US<br/>
<fmt:setLocale value="en_US" scope="page" />
<c:set var="distanceEL" value="${distance+3456.78}" />
fmt0=${distance} | ${distanceEL} <br/>
fmt1=<fmt:formatNumber pattern="0.0" value="${distance}" /> <br/>
fmt2=<fmt:formatNumber pattern="0.00" value="${distanceEL}" /> <br/>
fmt3=<%= new DecimalFormat("0.0").format(distance) %>

</body>
</html>

我在Tomcat6服务器中使用过这些库,但它们有点旧。无需更新,因为无论如何Tomcat6本身都是遗产。

  • lib / jstl-api-1.2.jar
  • lib / jstl-impl-1.2.jar
  • lib / el-api.jar_OLD(重命名为旧tomcat .jar以禁用它)
  • LIB / EL-API-1.1.jar
  • LIB / EL-IMPL-1.1.jar

这些是我在Tomcat7服务器中使用的文件,Tomcat7有lib / el-api.jar和lib / jasper-el.jar都没问题。无需更新它们。

  • javax.servlet.jsp.jstl-API-1.2.1.jar
  • javax.servlet.jsp.jstl-1.2.2.jar

http://search.maven.org/#browse|707331597http://search.maven.org/#browse|-1308691387链接下载新鲜的罐子。

确保在mywebapp / WEB-INF / web.xml文件中使用正确的webapp规范版本属性。 这是Tomcat6 webapp。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
   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"
>
  <description>My webapp</description>
  <display-name>My webapp</display-name>
</web-app>

这是Tomcat7 webapp。

<?xml version="1.0" encoding="ISO-8859-1"?>
<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_3_0.xsd"
  version="3.0" 
>
  <description>My webapp</description>
  <display-name>My webapp</display-name>
</web-app>