1. 怎麼查看struts2源碼
struts2的官網有下。。名字是文件名含有src的就是。
2. 怎樣將struts2的源碼關聯到myeclipse中
另外一種方法: 1、 下載Struts的開源代碼,放在相應的目錄; (例如:struts-2.0.14-src, 放在G:\Study\struts\src下面)。 2、 在 Eclipse的 項目-屬性-java構建路徑-庫中,選擇一個需要關聯的jar文件,選擇"源代碼關聯項";將其關聯到相應的目錄;(例如 struts2-core-2.0.9.jar關聯到G:\Study\struts\src\struts-2.0.14-src\src\core \src\main\java中。注意:下載的目錄為 struts-2.0.14-src,關聯的目錄為struts-2.0.14-src\src\core\src\main\java) 不過這里沒說明,要關聯文件夾的話,你要選擇第三個按鈕,external folder
3. struts2的actioncontext什麼時候創建的源碼
先來看看下面的一個功能需求:
我們需要在Action中取得request請求參數「username」的值:
ActionContext context = ActionContext.getContext();
Map params = context.getParameters();
String username = (String) params.get(「username」);
為了實現這個功能,我們用了三個步驟:
1、取得我們當前的ActionContext對象context,ActionContext是個什麼冬冬?
2、從context對象里獲取我們所有的請求參數,取得的卻是一個Map對象params?
3、居然可以從我們的Map對象params里獲取我們需要的request請求參數「username」的值。
ActionContext(com.opensymphony.xwork.ActionContext)是Action執行時的上下文,上下文可以看作是一個容器(其實我們這里的容器就是一個Map而已),它存放放的是Action在執行時需要用到的對象,比如:在使用WebWork時,我們的上下文放有請求的參數(Parameter)、會話(Session)、Servlet上下文(ServletContext)、本地化(Locale)信息等。
在每次執行Action之前都會創建新的ActionContext,ActionContext是線程安全的,也就是說在同一個線程里ActionContext里的屬性是唯一的,這樣我的Action就可以在多線程中使用。
我們可以通過ActionContext的靜態方法:ActionContext.getContext()來取得當前的ActionContext對象,我們看看這段代碼:
public static ActionContext getContext() {
ActionContext context = (ActionContext) actionContext.get();
if (context == null) {
OgnlValueStack vs = new OgnlValueStack();
context = new ActionContext(vs.getContext());
setContext(context);
}
return context;
}
一般情況,我們的ActionContext都是通過:ActionContext context = (ActionContext) actionContext.get();來獲取的。我們再來看看這里的actionContext對象的創建:static ThreadLocal actionContext = new ActionContextThreadLocal();,ActionContextThreadLocal是實現ThreadLocal的一個內部類。ThreadLocal可以命名為「線程局部變數」,它為每一個使用該變數的線程都提供一個變數值的副本,使每一個線程都可以獨立地改變自己的副本,而不會和其它線程的副本沖突。這樣,我們ActionContext里的屬性只會在對應的當前請求線程中可見,從而保證它是線程安全的。
下面我們看看怎麼通過ActionContext取得我們的HttpSession:
Map session = ActionContext.getContext().getSession();
原來我們取得的session卻是Map類型的對象,這是為什麼?原來,我們的WebWork框架將與Web相關的很多對象重新進行了包裝,比如這里就將HttpSession對象重新包裝成了一個Map對象,供我們的Action使用,而不用直接和底層的HttpSession打交道。也正是框架的包裝,讓我們的Actoion可以完全的和Web層解藕。
如果我們的Action需要直接與JavaServlet的HttpSession、HttpServletRequest等一些對象進行操作,我們又該如何處理?請看下面的ServletActionContext。
ServletActionContext
ServletActionContext(com.opensymphony.webwork. ServletActionContext),這個類直接繼承了我們上面介紹的ActionContext,它提供了直接與JavaServlet相關對象訪問的功能,它可以取得的對象有:
1、javax.servlet.http.HttpServletRequest:HTTPservlet請求對象
2、javax.servlet.http.HttpServletResponse;:HTTPservlet相應對象
3、javax.servlet.ServletContext:Servlet 上下文信息
4、javax.servlet.ServletConfig:Servlet配置對象
5、javax.servlet.jsp.PageContext:Http頁面上下文
ServletActionContext除了提供了上面這些對象訪問,它當然也繼承了它父類ActionContex的很多功能,比如:對OgnlValueStack、Action名字等的訪問。
下面我們看看幾個簡單的例子,讓我們了解如何從ServletActionContext里取得JavaServlet的相關對象:
1、取得HttpServletRequest對象:
HttpServletRequest request = ServletActionContext. getRequest();
2、取得HttpSession對象:
HttpSession session = ServletActionContext. getRequest().getSession();
ServletActionContext和ActionContext有著一些重復的功能,在我們的Action中,該如何去抉擇呢?我們遵循的原則是:如果ActionContext能夠實現我們的功能,那最好就不要使用ServletActionContext,讓我們的Action盡量不要直接去訪問JavaServlet的相關對象。在使用ActionContext時有一點要注意:不要在Action的構造函數里使用ActionContext.getContext(),因為這個時候ActionContext里的一些值也許沒有設置,這時通過ActionContext取得的值也許是null。
4. 怎麼在eclipse中以工程形式導入struts2源碼
打開Eclipse,在左邊Project Explorer ,點右鍵,選擇"Import",左鍵點"WEB",再點WAR File,在彈出的對話框選擇指定目錄下的*.war文件,就可以把項目導入到Eclipse了。
5. 求 java web開發 ssh2整合(struts2 hibernate3 spring2.5)項目源碼
已發送,希望能幫到你
6. Struts2增刪改查(完整項目版+源碼+資料庫)
ajax的ok不
7. 求一份javaweb的圖書管理系統 用到jsp struts2的 求打包源碼和資料庫
圖書館,或者書城,有一本書,叫 JSP實例講解。你可以去買一本或者借閱。裡面都是實例,其中,有一個就是你說的這個東東。
8. 怎麼把struts2源碼導入到eclipse
方法如下:
右擊project,選擇 Build Path --> Add External Archives.. 選擇lib所在目錄。
建議建立一個UserLib:Windows -- Java -- Build Path -- User Libraries ,在右邊點擊New,新建一個名為struts2的lib name, 然後點擊Add Jars,把對應的jar包導入進去。
使用UserLib:右擊項目,Add Library -- User Library -- 選擇建的struts2的lib就Ok了。
9. 我想知道諸如:ActionContext,ActionSupport,SessionAware這樣的struts2常用的類的源碼
(1)http://struts.apache.org/download.cgi#struts231-SNAPSHOT到Struts的官網下載Struts的源碼(選擇好匹配的版本),
(2)然後再MyEclipse任意的java文件中敲一個你要查看的類如「ActionSupport」,按下ctrl鍵+左擊「ActionSupport",
(3)此時由於沒有關聯源代碼,所以會出現一個提示頁面,點擊」attach file「按鈕選擇剛才下載的zip文件應該就可以了。
p.s.:我下載是-all.zip那個包,解壓時裡麵包含了一個src源代碼目錄,在第(3)我選擇關聯文件夾,能成功查看代碼。
10. 誰有尚學堂馬士兵的Struts2的項目源碼
首先,struts2進行許可權驗證是用攔截器做的
一個簡單的登錄攔截器示例如下:
package com.zdf.interceptor;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.zdf.entity.Admin;
@SuppressWarnings("serial")
public class LoginInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
Admin admin = (Admin)invocation.getInvocationContext().getSession().get("ADMIN");
if(admin!=null){
return invocation.invoke();
}else{
return Action.LOGIN;
}
}
}