初识Struts 2

来源:互联网 发布:mac版本photoshop破解 编辑:程序博客网 时间:2024/06/07 02:48
Struts 2 初体验

一、概述

1.描述

Struts1 缺陷

1.表现层支持单一
2.对ServletAPI的依赖
3.不利于代码重用

Struts 2设计核心:

建立兼容WebWork 和Struts 1 的MVC框架

2.Struts 2 的获取

网址:Struts.apache.org

二、Struts 2 的应用

比较安全的版本: 2.3.32 和2.5.10.1

搭建Struts2流程

1.导入jar包
2.设置 web.xml
3.配置Struts.xml文件
Action的实现可以有两种方式:
1.实现Action接口
2.继承ActionSupport类

1.导入jar 包

2.第一个Struts 2 程序

步骤:
1. 创建jsp页面

需要使用到它的标签时注意添加引用:

<%@taglib uri="/struts-tags" prefix = "s"%>

2.创建XXXXAction类 对用户请求做出处理
实现Action 接口
所有请求的方法都不许返回一个字符串类型的逻辑结果,
用于标识要呈现给用户的结果

3.修改xml配置文件

注意:不同的版本 他的核心类会有所不同早期的核心类为

org.apache.struts2.dispatcher.FilterDispatchere

<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>
<url-pattern>/*</url-pattern>
</filter-mapping>

4.创建Struts2的配置文件 在src目录下创建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>
<!-- 创建一个default 包,继承自Struts2的struts-default包 -->
<package name = "default" namespace = "/" extends = "struts-default">
<!-- 接收处理用户的/XXX.action 请求,并根据返回结果,完成跳转 -->
<action name = "XXX" class="cn.strutsdemo.XXXaction">
<!-- 结果为"success"时跳转至helloWorld.jsp页面 -->
<result name="success">helloWorld.jsp</result>
</action>
</struts>

struts2配置文件下的元素
packge :用于定义struts2 处理请求的逻辑单元,name属性为必须的并且唯一,用来指定包的名称
(被其他包引用);extends属性类似Java的extends关键字,用于指定要扩展的包
action:元素用于配置Struts2框架的"工作单元"Action类。Action 元素讲一个请求的uri
(action的名字) 对应到一个Action类。name属性是必须的,用来表示action的名字;
calss属性可选 用于设定Action类的全名
result:设定Action类的处理结果后,系统下一步将要做什么。name属性表示result的逻辑视图名称
必须与Action类返回字符串进行匹配;而result元素的值表示与逻辑视图对应的物理资源之间的映射
5.编译部署并启动服务器,访问helloWorld.jsp页面
3.使用Struts2实现登录功能
1.定义一个loginAction
public calss LoginAction(){
private String username ;
private String password;
public String execute(){
if("jbit".equals(username)){
//登录成功 返回success
retrun "success";
}else{
//登录失败 返回error
retrun "error";
}
}
}
2.然后在struts.xml中配置LoginAction
加一个action
<action name = "login" class = "cn.strutsdemo.LoginAction">
<!-- 结果为success时 跳转至success.jsp页面-->
<result name = "success" > success.jsp</result>
<result name="error">fail.jsp</=result>
</action>
3.编译部署并启动服务器,访问login.jsp页面

三、Struts2访问ServletAPI对象

1.概述:

Struts2提供了多种方式访问 ServletAPI访问方式 但是主要是用一下两种
ServletAPI解耦访问
ServletAPI耦合访问

2.ServletAPI解耦访问方式

1.使用ActionContex类获取ServletAPI对象应用的Map对象
ActionContext ac = ActionContext.getContext();
//获取HttpServletRequest对应的Map对象
Map requset = (Map)ac.get("requset");
//获取对应HttpSession对应的Map对象
Map session = ac.getSession();
//获取对应的ServletContext对象的Map对象
Map application = ac.getAppliction();
2.Struts2向Action注入ServletAPI对象对应的Map对象
RequestAware/SessionAware/ApplicationAware
public void setRequest()/setSession()/setApplication()

3.ServletAPI耦合访问方式

通过ServletActionContext类得到ServletAPI对象
getRequest()/getServletContext()//getRequest
通过ServletContextAware类实现 ServletAPI的注入
setServletContext(context)/setServletRequest(requset)/setServletResponse(reponse)

四、Struts2数据校验

使用ActionSupport类完成对数据的校验

五、Struts2标签 (UI(UI Tag)标签&通用标签(Generic Tag))

1.UI标签分为:表单标签、非表单标签和Ajax标签
表单标签:
s:from 获取对应的form值
s:textfield 文本输入框
s:password 密码输入框
s:radio 单选框
s:textrea 多行文本域 
s:checkbox 复选框
s:submit 提交标签
s:reset 重置标签
s:hidden 隐藏域标签
通用标签
s:if
s:elseif 根据表达式的值,判断将要执行的内容
s:else

s:iterator用于遍历集合 

s:if 以及迭代器的实例:

<s:if test="#session.ulist==null">
    <%
    request.getRequestDispatcher("ulist.action").forward(request, response);
    %>
    </s:if>
    <s:iterator value="#session.ulist" status="status" >
    <tr>
    <td><s:property value="#session.ulist[#status.index].name"/></td> 
    <td><s:property value="#session.ulist[#status.index].password"/></td> 
    </tr>
    </s:iterator>


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝只吃乳头不吃奶瓶怎么办 给泰迪奶狗喂奶呛到了怎么办 奶壶喂奶呛到了怎么办 宝宝喝奶瓶老是呛到怎么办 两个月宝宝睡偏头了怎么办 婴儿吐奶豆花状怎么办 吃母乳乳头破了怎么办 顺产后仰卧睡了怎么办 宝宝含着母乳睡怎么办 刚出生的孩子不吃母乳怎么办 月子里挤奶手痛怎么办 做完月子之后腿疼腰疼怎么办 腰疼引起的腿疼怎么办 上网上久了脑袋痛怎么办 莲花坐的脚麻怎么办 月子腿疼膝盖疼怎么办 做月子腿着凉了怎么办 出月子大腿根酸怎么办 出了月子腰酸痛怎么办 出了月子腿没劲怎么办 生完孩子后缺钙怎么办 生完孩子腿疼怎么办 生完孩子后腿疼怎么办 生完孩子肛门突出怎么办 生完孩子肋骨突出怎么办 蛙跳理蛙跳后腿疼怎么办 蛙跳两天后腿还疼怎么办 莲花菩提盘黑了怎么办 体育课蛙跳后肌肉拉伤怎么办 o型腿骨头弯了怎么办 小孩钢琴坐姿不对向后仰怎么办 小孩皮肤不好容易留疤怎么办 学游泳时站不稳怎么办 水呛到了不停打嗝怎么办 来月经前游泳了怎么办 快来完事游泳了怎么办 游泳时来月经了怎么办 经期第7天游泳了怎么办 来月经已经游了泳怎么办 月经来了要游泳怎么办 三个月宝宝趴着不会抬头怎么办