使用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">
<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;雖然它已過時,但是經典,適於學習;