一 ,入门小案例
1,首先引入三个jar
<dependency> <groupId>javaee</groupId> <artifactId>javaee-api</artifactId> <version>5</version> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.4.1</version> </dependency> <dependency> <groupId>org.apache.struts.xwork</groupId> <artifactId>xwork-core</artifactId> <version>2.3.4.1</version> </dependency>
2,配置web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <filter> <filter-name>struts1</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts1</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
3,创建实体类HelloAction并实现Action
public class HelloAction implements Action{ public String execute() throws Exception { return SUCCESS; } }
4,创建配置文件struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <action name="hello" class="cn.happy.controller.HelloAction"> <result name="success">index.jsp</result> </action> </package> </struts>
5,入门小案例就写完啦,通过struts.xml中action的name名来访问。
二 ,登陆小案例
1,创建实体类LoginAction
private String username; //用户名 private String password; //登陆密码 public String execute() throws Exception { //如果你的用户名和密码都是admin,return success.反之,走到login if(username.equals("admin")&&password.equals("admin")){ return SUCCESS; }else { return LOGIN; } 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; } }
2,配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <action name="login" class="cn.happy.controller.LoginAction"> <result name="success">day01/success.jsp</result> <result name="login">day01/login.jsp</result> </action> </package> </struts>
3,开发视图登陆页面
<%@taglib prefix="s" uri="/struts-tags" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <s:form name="form1" namespace="/" method="post" action="login"> 请输入用户名:</br> <s:textfield name="username"/> 请输入密码:<s:password name="password"/> <s:submit value="登陆"></s:submit> </s:form> </body> </html>
三,强化一下刚才的登陆案例,通过javaBean自动装配
1,新建实体类UserInfo
2,修改刚才的LoginAction页面
//植入实体类
private UserInfo info=new UserInfo();
public String execute() throws Exception { //如果你的用户名和密码都是admin,return success.反之,走到login if(info.getUsername().equals("admin")&&info.getPassword().equals("admin")){ return SUCCESS; }else { return LOGIN; }
public UserInfo getInfo() {
return info;
}
public void setInfo(UserInfo info) {
this.info = info;
}
}
3,修改一下登陆页面
<%@taglib prefix="s" uri="/struts-tags" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <s:form name="form1" namespace="/" method="post" action="login">
请输入用户名:</br> <s:textfield name="info.username"/>
请输入密码:<s:password name="info.password"/>
<s:submit value="登陆"></s:submit> </s:form> </body> </html>
4,登陆成功后success.jsp
5,这个时候登录名已经自动装配上了
四,Struts2访问Servlet API
解耦方案一:: 对Servlet API进行封装 ,借助ActionContext