為什麼struts2 action處理後返回到介面css效果都不起作用
在使用struts2的action執行後跳轉到的jsp顯示的時候其中的css不起作用,就拿我現在出問題的project為例:
action如下:
<action name="listUser" class="listUserAction">
<result>/users/userList.jsp</result>
</action>
(注:listUser的作用就是查出所有的使用者,然後交給users下的userList.jsp顯示出來。由於採用了spring,此處的"listUserAction"是applicationContext.xml中配置的名稱)
userList.jsp中的css設定如下:
<link href=“../css/style.css" rel="stylesheet" type="text/css" />
(注:目錄層次是這樣的,WebRoot下有users和css資料夾,所以users下的jsp要呼叫style.css需要../到根目錄,然後找css資料夾)
但是當程式從listUser執行成功後跳轉到/users/userList.jsp時出現了/css/style.css不起作用的情況,如果直接在位址列直接顯示jsp又能正常顯示了。
在網上找到的方法說css用絕對路徑:
<link href="<%=rootPath %>/css/style.css" rel="stylesheet" type="text/css" />
但是這樣會有一個很明顯的弊端,那就是移植性變差。
嘗試將result改為<result>userList.jsp</result>,然後將jsp放在根目錄下就沒有這種問題了,這時候問題的原因就知道的差不多了,那就是action是在根目錄下的,在執行程式的時候從位址列可以看到,就是說名稱空間是在根目錄,這時候再"../css/style.css"自然就找不到了。
明白了問題所在,解決方法就不難找了。找到listUser的配置所在的package,加上這樣一句namespace="/users"。這時候就是
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="users" extends="struts-default" namespace="/users">
......
<action name="listUser" class="listUserAction">
<result>/users/userList.jsp</result>
</action>
......
</package>
</strusts>
然後從新啟動伺服器,OK,顯示正常!同時我們也看到位址列中action前多了個"/users",跳轉到接視訊中也是"/users/userList.jsp",這樣就保持了一致,問題也就解決了。
相關文章
- Struts2 action前的資料預處理
- css為什麼設定div的寬度不起作用CSS
- 淺談 CSS 前處理器(一):為什麼要使用前處理器?CSS
- 銳龍處理器和酷睿處理器哪個好 為什麼都不建議買銳龍處理器
- 為什麼margin-top不起作用
- 從頁面底部回到頂部+動畫效果 & 翻頁後從按鈕處回到頁面頂部動畫
- 為什麼軟體外包不再“起作用”了
- 為什麼我會重回到Windows的懷抱?Windows
- wordpress更換域名後CSS錯誤怎麼處理CSS
- 為什麼?為什麼?Java處理排序後的陣列比沒有排序的快?想過沒有?Java排序陣列
- 什麼是介面?為什麼使用介面? 什麼時候使用介面?(轉)
- 華為處理器為什麼叫海思麒麟?
- 05. struts2中為Action屬性注入值
- css實現網頁”回到頂部“的程式碼效果CSS網頁
- 為什麼說流處理即未來?\n
- Redux 入門 -- 處理 async actionRedux
- 售後處理流程用什麼管理軟體好?
- BC搭建為什麼需要API介面?api介面增加了那些好處?API
- 為什麼很多人工作都不開心?
- 十四、css3動畫庫的使用、css3彈性盒子、calc()、css3預處理、什麼是less以及好處是什麼。CSSS3動畫
- 什麼是流處理
- 什麼是批處理
- Go 為什麼不像 Rust 用 ?!做錯誤處理?GoRust
- struts2的異常There is no Action mapped for namespace / and action nameAPPnamespace
- CSS 為什麼這麼難學?CSS
- 為什麼 CSS 這麼難學?CSS
- 什麼是NLP,NLP主要有什麼用,為什麼要學自然語言處理?自然語言處理
- 為什麼Extjs繼承Ext.data.Store不起作用JS繼承
- [TEAP早期試讀]《MongoDB in Action》——為什麼選擇MongoDB?MongoDB
- CSS > 關於雪碧圖預處理和後處理方案的討論CSS
- node.js為什麼能處理高併發情景?Node.js
- 為什麼用for迴圈繫結的事件處理函式只有最後一個有效事件函式
- Go 介面:nil介面為什麼不等於nil?Go
- 你知道什麼是 GitHub Action 麼?Github
- 為什麼你的自定義View wrap_content不起作用?View
- 為什麼很多公司都不招大齡程式設計師?程式設計師
- 為什麼現在連Date類都不建議使用了?
- 回到老東家需要注意什麼?