標籤:跳過 ace 報錯資訊 今天 固定 調用 運行 property return
今天遇到一個很棘手的問題,在jsp檔案中使用useBean,網頁返回碼出現了500伺服器內部錯誤,報錯資訊如下:
The value for the useBean class attribute wp.A is invalid.
之前項目放在tomcat的webapps檔案夾下,運行是正常的,現在是配置了虛擬目錄,所以與javabean無關,應該是和配置了虛擬目錄有關
嘗試了很多方法都沒用,最後找到了正確的解決方案(解決方案在最下面,如果會使用javabean的可直接跳過中間部分)
在此之前,先介紹一下在tomcat的webapps檔案夾下建立項目的jsp中如何使用javabean
1.建立一個java檔案,例如:
package wp;public class A { private String FirstProperty = new String(""); public A(){} public void setFirstProperty(String value) { FirstProperty = value; } public String getFirstProperty() { return FirstProperty; }}
注意:javabean中至少要包含一個無參的建構函式
2.在項目的根目錄下建立WEB-INF檔案夾(區分大小寫,不要寫錯)
3.在WEB-INF檔案夾下建立classes檔案夾(名稱是固定的)
4.在classes檔案夾下建立與java檔案中對應的package後跟名稱的檔案夾(樣本中包名為wp)
5.編譯寫好的java檔案,將產生的.class檔案放到最終的包(wp)下
6.最後在jsp檔案中通過如下代碼使用javabean
<jsp:useBean id="a" class="wp.A" scope="page" />
參數解釋:id是為要引用的javabean起的名字,class的值即為javabean的class檔案所在的位置(後面不要跟.class),scope是設定bean的有效範圍(生命週期),當前設定的是僅在本頁面有效
javabean的調用
通過a.setXXX("")和a.getXXX()使用javabean中定義的方法
最後,就是本篇的重點所在,關於配置了虛擬目錄(不會配置的自行搜尋),使用javaBean報錯
很簡單,就是將WEB-INF檔案夾建立在所配置虛擬目錄的根目錄
(如果虛擬目錄為D:\workspace 在此檔案下建立個人項目名為Demo,通常的做法是將WEB-INF檔案夾直接建立在Demo下,這是錯誤的,而是需要建立在workspace的根目錄下)
JSP配置了虛擬目錄使用JavaBean報錯