今天我們總結一下Struct2的例子,寫一個入門的小Demo
1:在Eclispe中新建dynamic web project工程
2:把我們需要的jar包添加進去
3:我們新建web.xml文件
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<dispatcher>FORWARD</dispatcher>
<!--http://hintcnuie.iteye.com/blog/226251/ -->
<dispatcher>REQUEST</dispatcher>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
分析:我們配置了一個filter,所有請求都過濾給了org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,有這個玩意來分發
4:配置struct.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="basicstruts" extends="struts-default">
<!--Struts2處理請求是爲每個請求都創建一個單獨的Action類 -->
<action name="index">
<result>index.jsp</result>
</action>
<action name="login" class="com.ccut.LoginAction">
<result name="success">/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
<!--簡單談下啊struct2和SpringMVC的區別1:struct基礎過濾器進行攔截,SpringMVC的核心控制器是Servlet2:struct基於對象,沒一個請求都會創建一個action,而SpringMVC是基於方法進行設計的,只有一個實例 -->5:創建jsp文件,請求之後攔截
5.1:index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="login.action">
用戶名:<input type="text" name="userName"/><br>
密碼:<input type="password" name="passWord"/><br>
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
</body>
</html>
5.2: error.jsp
錯誤了
5.3:welcome.jsp
Hello Struts2 World
6:創建java文件
6.1: LoginAction.java文件
package com.ccut;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
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;
}
public String execute() {
System.out.println("姓名:" + userName + "密碼" + passWord);
if ("a".equals(userName)) {
return SUCCESS;
} else {
return ERROR;
}
}
}