艱辛地學了3個月java,最近在做項目了,在期間遇到很多問題讓我進步很多,老師說軟體是改出來的而不是寫出來的,現在我有那麼一點點體味了!
廢話不說那麼多了,說說路徑問題吧,我們知道路徑有絕對路徑和相對路徑,在開發的過程中我建議使用絕對路徑,因為使用絕對路徑後不會出現因為檔案夾相對的位置發生而失去一些效果的呈現,我總結了一下有以下幾種情況:
1、在訪問應用時,我們沒有必要去把請求的action的名字寫出來,我們可以充分利用eslipse建立webprojject時建立的index.jsp這個檔案,第一種方法是我們可以在裡面做轉寄:response.sendRedirect()方法,第二種是我們可以更改web.xml中的配置,把下面welcome元素中的insex.jsp檔案名稱字改成和index.jsp放在同一路徑下的我們自己的jsp檔案,這樣我們需要一輸入訪問的ip和連接埠號碼和應用程式名稱就能直接存取這個頁面了。
2、jsp中,有一個很重要的資源,那就是${pageContext.request.contextPath} 這個資源,它可以獲得當前的應用程式名稱,也就是我們所說的根路徑起始,這樣我們就可以不用把根寫死了,因為以後的應用會進行網域名稱解析,解析後的名字就不等於你直接寫的那個應用程式名稱了:舉個例子吧,假如你在做一個噹噹項目通過http://172.0.0.1:8080/dangdang/可以訪問到你的首頁,然後你在所有使用絕對路勁的地方都寫了
dangdang/.....這樣就不好辦了,因為要發布你的應用需要將你的應用程式名稱進行解析成網域名稱,dangdang這個詞解析後就變成其他的字母了,如此一來你在jsp中或者超連結中寫的dangdang這個詞就沒用了!!!
3、在什麼地方可以用${pageContext.request.contextPath}這個el運算式呢?
第一:jsp的超連結中
第二:如果一個jsp要引用另一個jsp這是也可以用:<%@ include page="${pageContext.request.contextPath}....."%>或者是forward
其他地方嘛,遇到了再說!
4、另外 struts2的路徑問題也是很頭疼的!在此給以下建議:
a、在jsp中寫超連結時,建議規範:${pageContext.request.contextPath}/namespace/actionName/這樣的規範,這樣就不會出錯!有一種情況是我們唯寫namespace/actionName而且你的action中繼承了ActionSupport,裡面有很多方法,當你在進行這樣的訪問跳轉時會在地址欄中出現一連串的namespace很煩人的!
b、表單的action 建議規範:${pageContext.request.contextPath}/namespace/actionName/。。字數有限,待續!