我正在开发一个与Tomcat7 (7.0.27)兼容的应用程序(为tomcat5.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版本)。你知道这个问题的原因是什么吗?
发布于 2012-05-30 10:57:02
您提到您使用的是JSTL 1.2.1,我假设它是从Glassfish服务器劫持的以下版本:
javax.servlet.jsp.jstl-1.2.1.jarjavax.servlet.jsp.jstl-api-1.2.1.jar但是,根据评论,在/WEB-INF/lib中的117个文件中,您似乎仍然拥有旧的JSTL1.0/1.1库
jstl.jarstandard.jar这只会有冲突。Remove。
发布于 2012-05-25 23:54:29
您需要对c:out使用单引号,否则将结束input标记的value属性。改为执行以下操作:
<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>https://stackoverflow.com/questions/10757498
复制相似问题