終極解法According to TLD or attribute directive in tag file, attribute select does not accept any expressions


3天硬是是把這個問題解決了 有時候突然上個廁所靈感就來了

第一次向用JSTL解析xml 然后我想遍歷整個xml文檔打印出來

居然不讓我輸入變量 那讓我怎么辦啊

在網上各種找答案

說什么<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>變為:
<%@ taglib prefix="c" uri=http://java.sun.com/jstl/core_rt  %>

什么反應都沒有啊 然后又上stackoverflow

也沒有解決問題

突然靈感來了 我就去看它的源文件

 

這是eclipse自帶的jstl包里面規定解析的地方

打開一看恍然大悟啊

一看就明白啊 原理解析的時候工具是從這找的配置文件

 

tag就是每個標簽的配置文件 拿out舉例子 紅色部分聲明的就是select這個屬性能不能有變量  rtexpravlue意思就是“變量表達式”

 

現在好了 想辦法把這個表達式改了就行了 直接改當然不得法 我們只要“欺騙”下工具就行了

1復制出來其中一個文件,比如x.tld,然后再本地修改,因為在工具里面文件只讀

2將x.tld里面的你想要改的部分修改,比如我想讓select屬性有表達式 我就讓上面紅色的地方改成true

3在工程的web.xml聲明這樣一段話

    <jsp-config>
        <taglib>
            <taglib-uri>/huang</taglib-uri>
            <taglib-location>/WEB-INF/x.tld</taglib-location>
        </taglib>
    </jsp-config>

4在具體的jsp頁面引用這個你自己定義的"huang"新標簽

<%@ taglib prefix="x" uri="/huang" %> 

5OK了,現在就可以用這個新標簽來看你想干的事了

比如我現在就可以拼接變量了

比如以前我

select里面套變量的話就會報錯According to TLD or attribute directive in tag file, attribute select does not accept any expressions

現在:

<x:out select="$casexml//案例//${node.name }" />

兩個EL表達式搞定當然用<%=xx%>也可以了

顯示正常

 

對了我的web版本是

 

<web-app version="3.0" 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">

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM