1. 程式人生 > >【SSH學習筆記】—從配置Struts1環境到簡單實例

【SSH學習筆記】—從配置Struts1環境到簡單實例

swa void tro 介紹 -s exceptio art error con

以下我將從一個簡單點的計算器實例,介紹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環境到簡單實例