【SSH學習筆記】―從配置Struts1環境到簡單實例
來源:程序員人生 發布時間:2014-11-03 08:38:52 閱讀次數:3893次
下面我將從1個簡單點的計算器實例,介紹struts1的環境配置,和其重要的兩個核心類:ActionForm和Action
簡單計算器實現思路:
1.提供1個輸入界面,輸入兩個數字和運算符(+、-、*、/),提交后將運算結果顯示出來,如果出現毛病顯示毛病頁面,在正確頁面和毛病頁面需要顯示出輸入值、運算符和計算結果。
2.發送計算要求,需要Action處理這個要求,并將計算結果返回。另外,發要求需要傳送數據才能計算,所以需要1個ActionForm來進行數據傳送。表單上傳送過來的數據都是字符串的,ActionForm可以進行數據類型轉換。
步驟1:配置Struts環境
1.jar包
拷貝此路徑下的所有jar包,并放置在項目的WebRootWEB-INFlib下
Strutsstruts⑴.2.9-binlib下所有的jar包
2.配置ActionServlet
找到Strutsstruts⑴.2.9-binwebappsstruts-blankWEB-INFweb.xml
將紅框中的內容拷貝到項目的WebRootWEB-INFweb.xml下

3.配置struts核心配置文件
拷貝Strutsstruts⑴.2.9-binwebappsstruts-blankWEB-INF下的struts-config.xml文件到WebRootWEB-INF下
步驟2:代碼實現
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模式的1個web開發框架。對Servlet進行了封裝。為何要進行封轉呢。主要是我們在Servlet進行頁面轉向時,頁面都是寫死了,直接轉到了jsp。如果我們更換jsp名稱,就需要修改代碼,而且從表單傳過來的數據都是字符串類型,我們還需要根據實際的需求進行類型轉換。例如(年齡,int類型),每次都需要先轉。基于這些種種緣由,Struts對其進行了封轉,提供了1種更加靈活的機制。
總結:
以上只是通過1個簡單的小例子來對struts1的初步學習。這只是學習的第1階段,對它的理解還需要看在以后的學習中是不是真實的用心,每種框架都有通的1面,所以只要用心學,多思考,再接觸新的框架的時候,任何問題也都會迎刃而解。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈