struts 框架實現的功能屬於mvc模式中的controller(控制層),以1.x版本爲例,其包含了五大重要組件即Action、ActionServlet、ActionMapping、ActionForward、ActionForm,而這都是一些類,下面就這個版本的配置過程做一個小節。
首先要新建一個Dynamic Web Project 並導入相關的jar 包如何
並且也要引入 關於struts的配置文件,struts-config.xml文件。在這個文件中就是關於action、form-bean以及global-forward、forward的配置
接下來,就是寫相關的formBean及Action,其中Action相當於servlet其實也就是對servlet的封裝,而要寫一個Action就是要寫一個類讓它繼承Action這個類就是處理表單數據、完成頁面跳轉的,當然在繼承的同時也要重寫Action類的execute方法,具體的實現方法如下:
public class MyAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
//這裏處理數據及調用業務邏輯等
return mapping.findForward("forword");//頁面跳轉
}
}
Action 寫完後我們還要寫一個formBean,這裏就是對錶單信息的封裝,它要繼承自ActionForm類,裏面的數據成員要和頁面中的表單name字段屬性值一樣同時要生成setter和getter方法具體的類信息如下
public class FormBean extends ActionForm {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
類寫完後就要對這個兩個類進行配置了。
在對這兩個類進行配置前,我們還要對struts中大的控制器進行配置,因爲這個大的控制器就是struts的入口,有點像過慮器。這個大的控制器就是ActionServlet,而我們上面所說的Action就是小的控制是處理具體業務邏輯的,ActionServlet的配置如下:
這個是在web.xml中配置的
<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>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
其實本質上ActionServlet就是一個servlet。在這裏需要注意的是param-name的值必須是config,還有就是*.do代表以.do接尾的路徑都要調用這個大控制器。
以上步驟完成後就要在struts-config.xml中 對Action和formBean進行配置了。具體的配置如下:
<struts-config>
<form-beans>
<form-bean name="formbean" type="com.ev.bean.FormBean" />
</form-beans>
<action-mappings>
<action path="/login" type="com.ev.action.MyAction" name="formbean" >
<forward path="/home.jsp" name="forword"></forward>
</action>
</action-mappings>
</struts-config>
其中的type屬性是引用的類名稱,action中的path表示調用該action時所用到的路徑,name屬性是對它所關聯的formBean的引用;forward的 path是要跳轉的頁面地址;form-bean就對ActionForm進行配置其中的name屬性是當和某個Action關聯時要用到。
最後就是要在頁面中調用了。調用如下
<form action="/teststruts1.3.10/login.do" method="post">
用戶名:<input type="text" name="username" value=""/><br/>
密碼: <input type="password" name="password" value=""/>
<input type="submit" value="提交" />
</form>
以上就是大概的配置步驟。