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">