2013-12-20 111 views
0

我有我的数据库中的数据,输出内容,我需要一个网页JSTL过滤内容:包含

目前我使用JSTL

实现页面内的博客文章工作的XML文件我XML输出是:

<articles> 
    <article author="Some Author" group="City Name" id="1" title="Article Title"> 
    <tags> 
    Accessories, Articles, Beauty, Bridal Wear, Fashion, bouquets, gowns, hair styles, make-up, make-up tips, Photography, venue, 
    </tags> 
    <content> 
     <![CDATA[Article Content HTML]]> 
    </content> 
    </article> 
</articles> 

我需要根据特定标记过滤文章。 我已经使用循环这样的尝试:

<x:forEach select="$doc/WGBE/region/articles/article" var="filteredArticle"> 
    <x:if select="$filteredArticle/tags ='First Steps'"> 
    <li><x:out select="$filteredArticle/@title"/></li> 
    </x:if> 
</x:forEach> 

但由于标签标签包含一个长刺,除非我知道在任何时候都满弦这种情况下失败。

所以我试图实现如下的循环:

<x:forEach select="$doc/WGBE/region/articles/article" var="filteredArticle"> 
    <c:set var="firstSteps" value="$filteredArticle/tags"/> 
    <c:if test="${fn:contains(firstSteps,'First Steps')}"> 
    <li><x:out select="$filteredArticle/@title"/></li> 
    </c:if> 
</x:forEach> 

这将引发异常:

330: tag = 'if'/attribute = 'test': An error occurred while parsing custom action attribute "test" with value "${fn:contains(firstSteps,'First Steps')}": org.apache.taglibs.standard.lang.jstl.parser.ParseException: EL functions are not supported. 

我把示例代码从这里: http://www.tutorialspoint.com/jsp/jstl_function_contains.htm

我不是太熟悉JSTL语法有人可以请我指出正确的方向。

谢谢你的帮助!

+0

你能发布你的'web.xml'和taglib指令在你的jsp的顶部吗? –

+0

感谢您的回复。不幸的是,我无法发布我的web.xml,但这里是taglib指令: <%@ taglib prefix =“x”uri =“http://java.sun.com/jstl/xml”%> <%@ taglib prefix =“c”uri =“http://java.sun.com/jstl/core”%> <%@ taglib prefix =“fn”uri =“http://java.sun.com/jsp/ jstl/functions“%> 我通过更改我的数据模型解决了问题,只是为文章创建了另一个包装。然而,我不知道我的语法在fn:contains函数中是否正确。 – user3113021

回答

0

根据您发布的taglib指令,您引用了旧版本的JSTL规范。

变化:

<%@ taglib prefix="c" uri="java.sun.com/jstl/core"; %> 

要:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

此外,请确保您web.xml的顶部引用正确Servlet规范。对于2.5应改为:

<web-app version="2.5" 
    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_2_5.xsd"> 

最后,从每个其余taglib指令的去除分号;

尝试进行这些更改,然后查看原始问题是否仍然存在。