步入struts1.x

使用struts1.x就得導入相對應的jar包;


antlr.jar

commons-beanutils.jar

commons-digester.jar

commons-fileupload.jar

commons-logging.jar

commons-validator.jar

jakarta-oro.jar

struts.jar

 

 

需要更改 java Web 項目裏的 web.xml ;在下載 struts jar 包同時會有實例程序 *.war 文件;用壓縮程序打開;找到實例程序中的 web.xml ,可以直接 copy:

 

 

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

 

具體的可以 Google

然後將實例中的程序的struts-config.xml文件copy到WEB-INF下:將<struts-config></struts-config>中的代碼和註釋全部刪除;這樣一個struts1.x的環境就搭建好了;

 

 

由簡單的計算器例子帶我們認識下struts1.x:

 

ActionForm:

package com.keith;

import org.apache.struts.action.ActionForm;

public class CountForm extends ActionForm {
	private int first;
	private int second;
	private String operator;
	
	public int getFirst() {
		return first;
	}
	public void setFirst(int first) {
		this.first = first;
	}
	public int getSecond() {
		return second;
	}
	public void setSecond(int second) {
		this.second = second;
	}
	public String getOperator() {
		return operator;
	}
	public void setOperator(String operator) {
		this.operator = operator;
	}
	

}

 

Count:

package com.keith;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class CountAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		CountForm cf = (CountForm) form;
		int first = cf.getFirst();
		int second = cf.getSecond();
		String operator = cf.getOperator();

		int result = 0;

		try {
			if ("+".equals(operator)) {
				result = first + second;
			} else if ("-".equals(operator)) {
				result = first - second;
			} else if ("*".equals(operator)) {
				result = first * second;
			} else if ("/".equals(operator)) {
				result = first / second;
			}
			request.setAttribute("result", result);
			return mapping.findForward("suc");
		} catch (Exception e) {
			e.printStackTrace();
			return mapping.findForward("ero");
		}		
	}

}

 

index.jsp:

<form action="count.do" method="post">&nbsp; 
  	<input type="text" name="first">
  	<select name="operator">
  		<option value="+">+</option>
  		<option value="-">-</option>
  		<option value="*">*</option>
  		<option value="/">/</option>
  	</select>
  	<input type="text" name="second">
  	<input type="submit" value="=">
  </form>

 result.jsp:

    計算結果爲:<% CountForm cf1 = (CountForm)request.getAttribute("CountForm"); %>
    	<%= cf1.getFirst() %>
    	<%= cf1.getOperator() %>
    	<%= cf1.getSecond() %>=
    <%=request.getAttribute("result") %>
 

看下配置文件struts-config.xml:

<struts-config>
	<form-beans>
		<form-bean name="CountForm" type="com.keith.CountForm" /><!-- 給ActionForm取個名字,並指出它的位置-->
	</form-beans>
	
	<action-mappings>
		<action path="/count"
				type="com.keith.Count"
				name="CountForm"
				scope="request">
				<!-- path:提交的時候給出的請求名;
					type:提交給哪個action執行
					name:指出action用到的ActionForm 的名字,由於xml是key-value的,所以知道key,就知道value;
					scope:指範圍,一般用requese;-->
					
			<forward name="suc" path="/resulet.jsp" /> <!--  給mapping.findForward:的名,並指定跳轉的頁面-->
			<forward name="ero" path="/ero.jsp" />		
		</action>
	</action-mappings>
	
</struts-config>

 以上是初步的認識struts1.x下一篇將系統的介紹struts1.x;雖然它已過時,但是經典,適於學習;

發佈了18 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章