大家知道MVC框架的核心就是控制器,所有用户通过JSP页面提交请求时都要将该请求提交给Struts 2的控制器处理。。Struts 2控制器根据处理结果,决定将哪个页面呈现给客户端。
1、实现控制器类
Struts 2不需要继承一个Action父类,但可以实现接口,Struts 2下的控制器就是一个普通的POJO.
(POJO:Plain Ordinary Java Object,它的概念和JavaBean基本相同,但是它除了具有一些私有属性以及相应的get、set方法外,没有其他的方法。)如果不知道,大家可以GOOGLE搜下。。。。。。。。。
Struts 2的Action就是一个包含execute方法的普通JAVA类。该类里包含的多个属性用于封装用户的请求参数。
下面是处理用户请求的Action代码:
public
class
LoginAction
... {
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() throws Exception
...{
if(getUsername().equals("songweipeng") && getPassword().equals("222689"))
...{
return "success";
}
else
...{
return "errer";
}
}
}
... {
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() throws Exception
...{
if(getUsername().equals("songweipeng") && getPassword().equals("222689"))
...{
return "success";
}
else
...{
return "errer";
}
}
}
2、配置Action
将上面定义的Action配置到WEB应用中去,才能处理用户的请求。(配置在Struts.xml)
Struts.xml文件应该放在CLASSES路径下,该文件主要放置Struts 的Action类。定义Struts 2 Action时,除了要定义该Action的实现类外,还需要定义ACTION的处理结果和资源之间的映射关系。
下面是配置STRUTS.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 ="02" extends ="Struts-default" />
< action name ="LoginAction" class ="Lee.LoginAction" />
< result name ="error" > /error.jsp </ result >
< result name ="sucess" > /Welcome.jsp </ result >
</ action >
</ package >
</ struts >
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
< struts >
< package name ="02" extends ="Struts-default" />
< action name ="LoginAction" class ="Lee.LoginAction" />
< result name ="error" > /error.jsp </ result >
< result name ="sucess" > /Welcome.jsp </ result >
</ action >
</ package >
</ struts >
3、增加视图资源完成请求
根据上面的 代码,应该增加两个JSP页面,
error.jsp的代码如下:
<%
...
@ page language="java" contentType="text/html;charset=GBK"
%>
< html >
< head >
< title > ERROR.JSP </ title >
</ head >
< body >
你的输入用户名不存在或者密码错误,请重新输入!!
</ body >
</ html >
< html >
< head >
< title > ERROR.JSP </ title >
</ head >
< body >
你的输入用户名不存在或者密码错误,请重新输入!!
</ body >
</ html >
Welcome.jsp的代码如下:
<%
...
@ page language="java" contentType="text/html; charset=GBK"
%>
< html >
< head >
< title > WELCOME.JSP </ title >
</ head >
< body >
欢迎您登录
</ body >
</ html >
< html >
< head >
< title > WELCOME.JSP </ title >
</ head >
< body >
欢迎您登录
</ body >
</ html >