java web中關於修改xml後讀取值的問題
java web專案中我用xml檔案來儲存選單,選單如下:
修改xml中的display值使其可以動態顯示
讀取xml的類如下:
因為我剛開始做的時候是把xml檔案發在類路徑下,所以我選擇了第一種方式或第二種方式讀取
這是測試程式碼:
但是使用第一種方式和第二種方式讀取的時候,當xml檔案中的內容改變了以後,再去讀取如果不重新啟動的話,讀取的值還是以前讀取的,也就是說沒改變,但是用debug測試的時候,顯示修改後再去讀取是重新執行了讀取方法的,無賴之下,用第三種方式測試了一下,這次沒把xml放到類路徑下,而是直接放到了專案資料夾下,使用了絕對路徑的方式,這次卻可行,修改後可以讀出修改後的值,為什麼會出現這種情況,百思不得期解,無賴之下請教各位大俠
<?xml version="1.0" encoding="gbk"?> <menus> <frontmenus> <menu id="1"> <name>首頁</name> <href>index.jsp</href> <display>1</display> </menu> </frontmenus> </menus> <p class="indent"> |
修改xml中的display值使其可以動態顯示
讀取xml的類如下:
1. public class Front { 2. public Map<String, String> readXML() { 3. Map<String, String> menus = new LinkedHashMap<String, String>(); 4. SAXBuilder builder = new SAXBuilder(); 5. InputStream in=null; 6. try { 7. //第一種方式 Resource resource=new ClassPathResource("menus.xml"); 8. // in=resource.getInputStream(); 9. // Document doc=builder.build(in); 10. 11. //第二種方式 Document doc = builder.build(Front.class.getClassLoader() 12. // .getResourceAsStream("menus.xml")); 13. 14. File file=new File("E:\\my\\menus.xml"); 15. in=new FileInputStream(file); 16. Document doc=builder.build(in); 17. 18. Element element = doc.getRootElement(); 19. List l = element.getChildren("frontmenus"); 20. for (int i = 0; i < l.size(); i++) { 21. Element e1 = (Element) l.get(i); 22. List menuList = e1.getChildren("menu"); 23. for (int j = 0; j < menuList.size(); j++) { 24. Element e2 = (Element) menuList.get(j); 25. String name = e2.getChildText("name"); 26. String href = e2.getChildText("href"); 27. String display = e2.getChildText("display"); 28. if ("1".equals(display)) { 29. menus.put(href, name); 30. } 31. } 32. } 33. } catch (Exception e) { 34. System.err.println("Error create XML parser"); 35. } 36. return menus; 37. } 38. } <p class="indent"> |
因為我剛開始做的時候是把xml檔案發在類路徑下,所以我選擇了第一種方式或第二種方式讀取
這是測試程式碼:
1. Front front=new Front(); 2. Map<String,String> frontMenus=front.readXML(); 3. 4. Iterator it=frontMenus.entrySet().iterator(); 5. while(it.hasNext()) { 6. System.out.println(it.next()); 7. } <p class="indent"> |
但是使用第一種方式和第二種方式讀取的時候,當xml檔案中的內容改變了以後,再去讀取如果不重新啟動的話,讀取的值還是以前讀取的,也就是說沒改變,但是用debug測試的時候,顯示修改後再去讀取是重新執行了讀取方法的,無賴之下,用第三種方式測試了一下,這次沒把xml放到類路徑下,而是直接放到了專案資料夾下,使用了絕對路徑的方式,這次卻可行,修改後可以讀出修改後的值,為什麼會出現這種情況,百思不得期解,無賴之下請教各位大俠
相關文章
- 關於WEB.XML的問題,請進WebXML
- 關於Java Web工程中web.xml檔案JavaWebXML
- 關於excel引用外部excel的取值問題Excel
- 關於IDEA中SSM專案Web工程引入pom.xml後仍然找不到包的問題IdeaSSMWebXML
- Servlet中關於web.xml的測試ServletWebXML
- 關於 Spartacus 的 sitemap.xml 問題XML
- 關於web start的問題Web
- 關於web.xmlWebXML
- java中關於Map的九大問題Java
- 關於修改程式碼後不能及時生效的問題
- 關於 Android studio 在xml中不提示的問題AndroidXML
- 關於SAX解析xml檔案的問題XML
- 【求助】關於xml-rpc的問題XMLRPC
- 關於ubuntu下hosts修改的問題Ubuntu
- 關於xml編碼問題在VB,PHP,JAVA下的解決方案XMLPHPJava
- 關於jdon儲存,修改問題
- web.xml中的servlet相關WebXMLServlet
- Java中關於二分查詢的問題Java
- 關於jstl的xml操作中的select路徑表示式問題。JSXML
- 關於學習java中的按位取反(~)的問題Java
- 關於java的“原子操作”問題Java
- 關於將 OSGi 嵌入 WEB 容器的問題Web
- #關於學Web時遇上的奇葩問題Web
- 關於修改分割槽表的問題總結
- 關於Java中分層中遇到的一些問題Java
- Java中關於String型別的10個問題Java型別
- Leetcode刷題中關於java的一些小問題LeetCodeJava
- 請教高手關於解析xml檔案的問題 急~~XML
- 關於element中修改元件使用深度選擇器/deep/的問題元件
- 關於“Struts with XSLT and XML ”的Model2X的問題XML
- 一個關於Java Excel的問題JavaExcel
- 如何用程式碼修改struts中的web.xml配置WebXML
- 關於 Exception:Xml中的非法字元ExceptionXML字元
- 關於C++&Java中命令列編譯的問題 (轉)C++Java命令列編譯
- 請問一個關於web的管理系統的問題Web
- help:jbuilder中jsp修改後的執行問題UIJS
- 關於在web project專案中的程式碼重用問題討論WebProject
- 關於IDEA使用xml實現動態sql的問題IdeaXMLSQL