struts2
Struts2
一、Struts2概述
1 javaee三层结构:
Web层:struts2 用来从前台获取数据,经处理后再传送到前台
Service层:spring 用来配置各层的类、方法、属性之间的关系
Dao层:hibernate 用来处理从数据层获取数据,或向数据层写入数据
2 struts2应用在web层框架
3 struts2在struts1和webwork框架基础之上发展的全新的框架
4 struts2框架应用场景
(1)类似于baseservlet,比baseservlet更加强大
(2)从前台获取数据,或向前台传送数据
二、基本操作
(一)操作概述
1. 引入jar包
(1)基本jar包:

(2)创建action

(3)配置action访问控制
1)创建struts2核心配置文件
- 位置:在src下面
- 名称:struts.xml
2)引入约束 dtd约束

3)进行action配置

Namespace+action.name组成访问该action的相对路径。
(4)配置struts2过滤器
1)在web.xml中配置

最终:在浏览器地址栏输入地址,访问action
访问路径:http://服务器IP地址 +/ 项目名称 +/ namespace值 +/ action的name
http://127.0.0.1/Struts2_day01/user.action
后缀名.action,这个后缀名可以不写,建议写出来
(二)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>
<constant name="struts.i18n.encoding" value="utf-8" />
<constant name="struts.multipart.maxSize" value="209715200"></constant>
<package name="default" namespace="/" extends="struts-default">
<global-results>
<result name="error">/sys/error.jsp</result>
</global-results>
<action name="sys" class="nodesAction" method="getMainMenu">
<result name="menu">/main.jsp</result>
</action>
</package>
<!-- 菜单、节点处理 -->
<package name="node" namespace="/nodes" extends="struts-default">
<action name="nodes_*" class="nodesAction" method="{1}">
<result name="manager">/article/manager_nodes.jsp</result>
<result name="menu">/main.jsp</result>
<allowed-methods>regex:.*</allowed-methods>
</action>
</package>
<!-- 文章类相关 -->
<package name="article" namespace="/article" extends="struts-default">
<action name="article_*" class="articlesAction" method="{1}">
<result name="list">/article/listArticle.jsp</result>
<result name="add">/article/edit.jsp</result>
<result name="context">/article/articleEdit.jsp</result>
<result name="view">/article/viewArticle.jsp</result>
<result name="diary">/article/mydiary.jsp</result>
<allowed-methods>regex:.*</allowed-methods>
</action>
</package>
<package name="futures" namespace="/futures" extends="default">
<action name="futures_*" class="futuresAction" method="{1}">
<result name="variety">/futures/futures.jsp</result>
<result name="data">/futures/futuresdata.jsp</result>
<result name="addMinData">/futures/futuresaddmin.jsp</result>
<result name="quota">/futures/quota.jsp</result>
<allowed-methods>regex:.*</allowed-methods>
</action>
</package>
<package name="imgupload" namespace="/imgupload" extends="struts-default">
<action name="img_upload" class="com.itmicro.action.imgupload.imageUpload" method="imageUpload"></action>
</package>
<package name="stock" namespace="/stock" extends="default">
<action name="stock_*" class="stockAction" method="{1}">
<result name="varity">/stock/codes.jsp</result>
<result name="data">/stock/codes.jsp</result>
<allowed-methods>regex:.*</allowed-methods>
</action>
</package>
</struts>
1. 标签package
1 )配置action时候,首先必须写package标签
2 )在package标签里面有name属性,表示名称,理论上可以随便写
3 )在package里面有extends属性,属性值固定的struts-default
写了这个值之后,package里面配置的类,具有action功能
4 )在package里面有namespace属性
namespace的值和action标签的name属性值构成访问路径
5 )在一个配置文件中可以有多个package标签
package中,同一namespace下的action的name属性值不能相同
2.
浙公网安备 33010602011771号