簡體   English   中英

jstl輸出不起作用

[英]jstl output doesn't work

我正在開發一個與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版本)。 任何想法可能是造成此問題的原因嗎?

您提到您正在使用JSTL 1.2.1,我認為這是從Glassfish服務器劫持的以下代碼:

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

但是,根據注釋,您似乎在/WEB-INF/lib的117個文件中仍然具有舊的JSTL 1.0 / 1.1庫:

  • jstl.jar
  • standard.jar

那只會有沖突。 刪除它們。

您需要對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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM