2

私は、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、JSP2.2を使用しています。コードがコンパイルされ、web.xmlのweb-appバージョンを3.0から2.4に変更すると、それらの値を直接出力しなくても機能します(ただし、3.0バージョンを使用せざるを得ない他の問題があります)。この問題の原因は何でしょうか?

4

2 に答える 2

4

あなたはJSTL1.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

それは衝突するだけだったでしょう。それらを削除します。

于 2012-05-30T02:57:01.623 に答える
0

には一重引用符を使用する必要がありc:outます。そうしないと、タグのvalue属性が終了します。input代わりにこれを行ってください:

<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>
于 2012-05-25T15:54:29.150 に答える