我遇到了JSTL标记库前缀“fn”的问题(Eclipse Luna中的webapp开发)。
我的taglibs.jspf如下:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
和web.xml:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>jspf/taglibs.jspf</include-prelude>
</jsp-property-group>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>jspf/language_choice.jspf</include-prelude>
</jsp-property-group>
</jsp-config>
在我的jsp页面中,我尝试使用JSTL的substring函数:
<a href=http://frenchsite.<c:out value="${fn:substring(language, 0, 2)}" />/" class="general-img" >
(为了在这种情况下拥有链接 - &gt; http://frenchsite.fr)
和language_choice.jspf
文件:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<c:set var="language" value="${not empty param.language ? param.language : not empty language ? language : pageContext.request.locale}" scope="session" />
<fmt:setLocale value="${language}" />
<fmt:setBundle basename="com.myproject.resources.Messages" />
但似乎子串函数不起作用
如果我提出:<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
页面位于页面顶部 可行...
我不明白,这个taglib
已经在taglibs.jspf
和taglibs.jspf
中定义,并在所有jsp文件中导入(参见web.xml)。
(顺便说一句,fmt前缀不会导致任何问题...)
感谢您的回答!
答案 0 :(得分:0)
我直接添加了那些&lt;%@ taglib ~~&#34;文件的行有问题。 然后错误被删除。在我发现没有错误后,我再次删除了这些行。 现在看起来很好!