Struts 2 MVC框架待解决的问题:
1.如何拦截用户请求;
2.如何调用业务控制器处理用户请求
解决方案:
1.先将环境搭建起来
a.创建一个WEB应用myweb
b.把Struts2中的
struts2-core-2.0.14.jar
xwork-2.0.7.jar
ognl-2.6.11.jar
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
导入到项目myweb中
c.在web.xml文件中进行如下配置:
<filter>
<filter-name>cs</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>cs</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.进入Struts 2 MVC框架的世界
a.编写一个表单页面
<form action="test.action" method="post">
用户名:<input type="text" name="userName" >
密码:<input type="password" name="userPassword">
<input type="submit" name="tj" value="提交">
<input type="reset" name="qx" value="取消">
</form>
注意:action属性值和表单元素的名称
b.编写一个Action类。在Struts2中的Action类比较简单。类似于POJO,但是唯一不同的是它拥有一个参数为空的execute方法
package com.myweb.struts2;
public class LoginAction {
private String userName;
private String userPassword;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String execute(){
if(this.getUserName()!=null && this.getUserPassword()!=null){
if(this.getUserName().trim().length()>0 && this.getUserPassword().length()>0){
if(this.getUserName().equals("admin") && this.getUserPassword().equals("123456")){
return "success";
}else{
return "error";
}
}else{
return "error";
}
}else{
return "error";
}
}
}
c.编写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="s" extends="struts-default">
<action name="test" class="com.myweb.struts2.LoginAction">
<result name="success">/first/success.jsp</result>
<result name="error">/first/error.jsp</result>
</action>
</package>
</struts>
d.再编写两个文件:success.jsp和error.jsp文件
3.将项目部署到服务器端,开启tomcat,在IE中输入:http://localhost:8080/myweb/first/test.jsp进行测试