一尘不染

jstl输出不起作用

jsp

我正在开发一个与tomcat 7(7.0.27)兼容的应用程序(为tomcat 5.5开发)。我在使用jstl时遇到问题,当我指定时,只是不输出标签:

<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">

在我的WEB-INF / web.xml文件中(以前使用的是2.4版本)。

.jsp文件示例:

%@page
   language="java"
   pageEncoding="utf-8"
   contentType="text/html;charset=utf-8"
   buffer="none"
%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="uri:path-to-layout/layout" prefix="layout" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:bundle basename="com.path.to.resources.Labels">

<td><input
name="j_username"
id="j_username" 
maxlength="30" 
accesskey="2" 
type="text"
style="width: 150px;"
value="<c:out value="${pageContext.request.remoteUser}" default="" />" /></td>

而不是预期的输出,我收到:

${pageContext.request.remoteUser}

作为文本字段中的值。

我使用JSTL 1.2.1,Tomcat 7.0.27,JSP 2.2。代码会编译,当我将web.xml中的web-
app版本从3.0更改为2.4时,它可以工作而无需直接输出这些值(尽管还有其他问题迫使我使用3.0版本)。任何想法可能是造成此问题的原因吗?


阅读 422

收藏
2020-06-10

共1个答案

一尘不染

您提到您正在使用JSTL 1.2.1,我认为这是从Glassfish服务器劫持的以下代码:

  • javax.servlet.jsp.jstl-1.2.1.jar
  • javax.servlet.jsp.jstl-api-1.2.1.jar

但是,根据注释,您似乎仍然在117个文件中拥有旧的JSTL 1.0 / 1.1库/WEB-INF/lib

  • jstl.jar
  • standard.jar

那只会有冲突。 删除 它们。

2020-06-10