यह आसानी से जेएसटीएल के साथ आसानी से नहीं किया जाता है। मैं सुझाव दूंगा कि आप यह जांचने के लिए कक्षा का उपयोग करें कि फ़ाइल मौजूद है या नहीं और बूलियन मान लौटाएं। यह आपको एक जेएसटीएल चुनने या अपने लक्ष्य को पूरा करने के लिए कथन का उपयोग करने की अनुमति देगा।
कक्षा फ़ाइल का उपयोग करके कई तरीकों से संपर्क किया जा सकता है। मैं शायद एक उपयोगिता वर्ग लिखूंगा और एक कस्टम टैगलिब तैयार करूंगा जिसे नौकरी करने के लिए ईएल/जेएसटीएल का उपयोग करके बुलाया जा सकता है। आप यहां इस प्रकार के दृष्टिकोण का एक उदाहरण देख सकते हैं: How to call a static method in JSP/EL?
निम्नलिखित फ़ाइल उपयोगिता वर्ग का एक उदाहरण है जिसे मैंने अतीत में टॉमकैट में फ़ाइलों की जांच करने के लिए उपयोग किया है।
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>2.0</tlib-version>
<uri>http://www.your-domain.com/taglib</uri>
<function>
<name>doMyStuff</name>
<function-class>com.mydomain.util.FileUtil</function-class>
<function-signature>
java.lang.Boolean fileExists(java.lang.String)
</function-signature>
</function>
</taglib>
JSP म:
package com.mydomain.util;
public class FileUtil implements Serializable {
public static boolean fileExists(String fileName){
File f = new File(getWebRootPath() + "css/" + fileName);
return f.exists();
}
private static String getWebRootPath() {
return FileUtil.class.getProtectionDomain().getCodeSource().getLocation().getPath().split("WEB-INF/")[0];
}
}
फिर /WEB-INF/functions.tld अंदर, अपनी परिभाषा बनाने
<%@ taglib prefix="udf" uri="http://www.your-domain.com/taglib" %>
<c:if test="${udf:fileExists('my.css')}">
<!-- do magic -->
</c:if>
स्रोत
2013-05-29 00:46:36
इस चेक, इतने पास: http: // stackoverflow.com/questions/2624657/how-can-you-check-if-a-file-exists-before-including-importing-it-in-jsp –
कैच ब्लॉक मेरे मुद्दे को हल नहीं करेगा क्योंकि मैं HTML 'लिंक' का उपयोग कर रहा हूं सीएसएस फ़ाइल को शामिल करने के लिए टैग करें। क्या मैं jstl का उपयोग कर सीएसएस शामिल कर सकता हूं? – S4beR