今天初识了Struts2
1.struts2的基本概念
1)Struts2是一个web框架
2)Struts2统一了web项目的规范
3) Struts2在作用上说可以理解为Servlet的作用
4)Struts 和 Struts2 没有任何关系…..最多是个傍名牌
5)Struts2的核心是拦截器……类似过滤器
一 xml配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<!-- 设置常量值,设置页面主题为极简模式 -->
<constant name="struts.ui.theme" value="simple"></constant>
<!-- package元素用于配置Action包,包主要用于管理动作模型的对象
name="Users"表示包的名称,在配置文件中是唯一的
namespace="/"表示虚拟路径名称
extends="struts-default" 表示继承Steuts2提供的struts-default.xml文件,此文件中配置了各种类型转换和拦截器类,用于辅助用户的数据处理
-->
<package name="Users" namespace="/" extends="struts-default">
<!--
action元素用于配置动作模型
class="com.action.UsersAction"表示动作类的包路径
method="check" 表示要执行的方法
-->
<action name="check_Users" class="com.action.UsersAction" method="check">
<!--
result 元素表示结果的配置,是action的子元素
name="执行的返回值"
loginok.jsp 表示 跳转路径
type="redirect" 表示该跳转使用重定向方式跳转
没有type属性则表示转发
-->
<result name="ok" type="redirect">loginok.jsp</result>
<result name="fail" >fail.jsp</result>
</action>
</package>
</struts>
二 动作类声明
public class UsersAction {
/**
* 这个类功能上来说和我们以前的com.Servlet一致
* 在Struts2中本类
* 动作模型又称为动作类
* 命名:一般使用实体类名+Action组成,Action是不可改变的
* 动作模型中的实体类属性
* 由Struts2的拦截器自动设置到电影属性(自动调用的SetXXX方法赋值)
* 表单元素中的控件名称和Action中的实体属性名称一致
* 例 <input type="text" name="us.uname">
*
* */
private Users us;//值栈,此属性默认在request范围中(相当于)
public Users getUs() {
return us;
}
public void setUs(Users us) {
this.us = us;
}
/**
* 动作方法
* 返回值类型为String,无任何参数
* */
public String check(){
if(us!=null){
if(us.getUname()!=null&&!us.getUname().trim().equals("")&&us.getPasswd()!=null&&!us.getPasswd().trim().equals("")){
//获取session对象,ServletActionContext用于获取web的作用域,以及相关的ServletApi的类对象
HttpSession session=ServletActionContext.getRequest().getSession();
session.setAttribute("us", us);
return "ok";
}
}
return "fail";
}
}
三 网页提交页面
<form action="check_Users" method="post" name="from1">
账号:<input type="text" name="us.uname"><br>
密码:<input type="password" name="us.passwd"><br>
<input type="submit" value="确定">
</form>
Struts2工作流程:
简单的做了一下关于配置的
总结: