【SSH學習筆記】—從配置Struts1環境到簡單實例
以下我將從一個簡單點的計算器實例,介紹struts1的環境配置,以及其重要的兩個核心類:ActionForm和Action
簡單計算器實現思路:
1.提供一個輸入界面,輸入兩個數字和運算符(+、-、*、/),提交後將運算結果顯示出來。假設出現錯誤顯示錯誤頁面,在正確頁面和錯誤頁面須要顯示出輸入值、運算符和計算結果。
2.發送計算請求。須要Action處理這個請求。並將計算結果返回。此外,發請求須要傳送數據才幹計算。所以須要一個ActionForm來進行數據傳送。表單上傳送過來的數據都是字符串的,ActionForm能夠進行數據類型轉換。
步驟一:配置Struts環境
1.jar包
拷貝此路徑下的全部jar包。並放置在項目的WebRoot\WEB-INF\lib下
\Struts\struts-1.2.9-bin\lib下全部的jar包
2.配置ActionServlet
找到Struts\struts-1.2.9-bin\webapps\struts-blank\WEB-INF\web.xml
將紅框中的內容復制到項目的WebRoot\WEB-INF\web.xml下
3.配置struts核心配置文件
拷貝Struts\struts-1.2.9-bin\webapps\struts-blank\WEB-INF下的struts-config.xml文件到WebRoot\WEB-INF\下
步驟二:代碼實現
1.新建input.jsp頁面:提供輸入界面。輸入兩個數字和運算符
<body> <h1>簡易計算器</h1> <hr> <form action="cal.action" method="post"> <input type="text" name="value1"> <select name="flag"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="text" name="value2"> <input type="submit" value="計算"> </form> </body>
2.新建CalActionForm頁面並繼承Struts的ActionForm:ActionForm將頁面上的數據封轉到Action業務類。
<pre name="code" class="java">/** * ActionForm傳送數據 * @author 火雲 * */ @SuppressWarnings("serial") public class CalActionForm extends ActionForm { private int value1; private String flag; private int value2; public int getValue1() { return value1; } public void setValue1(int value1) { this.value1 = value1; } public String getFlag() { return flag; } public void setFlag(String flag) { this.flag = flag; } public int getValue2() { return value2; } public void setValue2(int value2) { this.value2 = value2; } }
3.新建CalAction類並繼承Struts的Action,並覆蓋execute方法:Action處理每一次請求
/** * Action處理每一次請求。繼承Struts的Action,並覆蓋execute方法 * @author 火雲 * */ public class CalAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //取出表單數據 CalActionForm calform = (CalActionForm)form; //基於Struts對數據的封裝傳送,所以我們能強制轉換 int value1 = calform.getValue1(); String flag = calform.getFlag(); int value2 = calform.getValue2(); //處理數據 int result = 0; try { if("+".equals(flag)){ result = value1+ value2; }else if("-".equals(flag)){ result = value1-value2; }else if("*".equals(flag)){ result=value1*value2; }else if ("/".equals(flag)){ result=value1/value2; } //轉向成功頁面 request.setAttribute("result", result); return mapping.findForward("success"); } catch (Exception e) { e.printStackTrace(); } //轉向錯誤頁面 return mapping.findForward("error"); } }
4.配置流程:Struts-config文件
5.success.jsp頁面:
<body> ${calform.value1 } ${calform.flag } ${calform.value2 } = ${result } </body>
6.error.jsp頁面
<body> ${calform.value1 } ${calform.flag } ${calform.value2 } 失敗!</body>
事實上,在DRP分銷系統中我們接觸過MVC開發模式,在MVC開發模式中Servlet扮演著控制器的角色。
其主要功能:參數獲取。業務邏輯調用,以及頁面轉向。
Struts是基於MVC模式的一個web開發框架。對Servlet進行了封裝。為什麽要進行封轉呢。主要是我們在Servlet進行頁面轉向時。頁面都是寫死了。直接轉到了jsp。假設我們更換jsp名稱,就須要改動代碼,並且從表單傳過來的數據都是字符串類型,我們還須要依據實際的需求進行類型轉換。比如(年齡,int類型),每次都須要先轉。基於這些種種原因。Struts對其進行了封轉。提供了一種更為靈活的機制。
總結:
以上僅僅是通過一個簡單的小樣例來對struts1的初步學習。這僅僅是學習的第一階段。對它的理解還須要看在以後的學習中是否真正的用心。每一種框架都有通的一面。所以僅僅要用心學,多思考,再接觸新的框架的時候,不論什麽問題也都會迎刃而解。
【SSH學習筆記】—從配置Struts1環境到簡單實例