首页 > 其他 > 详细

Struts2 入门

时间:2019-09-14 17:54:16      阅读:152      评论:0      收藏:0      [点我收藏+]

 

                                                                                                               MVC 思想

                 M

                      V

              C

               Model

                    View

         Controller

数据模型层:DAO/service/entity

视图层:

Jsp/html/freemarker/volicity

控制层:servletstruts2springMVC

 

MVC思想的好处:解耦合,提高系统的可维护性和可拓展性

 Struts2框架概述:      充当了MVC中的C 替换了Servlet     //底层封装了Servlet相关API, 但是它不是  Servlet 

                                     也就是应用javaee三层结构中的web层框架 实在struts1 和webwork基础上发展的全新框架。

web层常见框架 :

(1) struts2

(2)springMVC

 

Struts2官方文档目录:

                                           技术分享图片

 

 

如果想要使用Struts2框架 首先需要导入jar包

1)在lib中有jar包,不能把这些jar都导入到项目中

2)到apps目录里面,找到示例程序,从示例程序复制jar

                                                              技术分享图片

 

 

做初始化配置 - 开启struts2框架   在web.xml中进行配置

 

                                                            技术分享图片

 

 类比于web中的Servlet 每次访问的时候都会执行service方法

每次访问action都会执行execute方法

    public String execute() throws Exception {
    
        return SUCCESS;
    }

配置action的访问路径

创建struts2的核心配置文件

核心配置文件名称和位置都是固定的   位置必须在src下 ,名称 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>

</struts>

                                                        技术分享图片

 

 访问路径是localhost:8087/项目名/action中name属性的值。

struts2的执行过程

                                                              技术分享图片

 

 过滤器在服务器启动的时候进行创建,创建过滤器的时候执行init方法

在init方法中主要加载配置文件 包含自己创建的配置文件和struts2自带的配置文件

struts.xml

web.xml

struts2的配置文件详解

 

<package name="find" extends="struts-default" namespace="/">
     <action name="findUser" class="com.baizhi.action.findLink">
      <result name="success">/linkmanList.jsp</result>
     </action>
     
</package>

标签package

     类似于包 主要用于区分不同的action , 

               name属性:在一个配置文件中可以有多个package 但是package得name属性值不能相同

                extends="struts-default"  属性值是固定的 只有写了这个属性之后,在package里面配置的类具有action功能

                namespace =""  namespace与action中的name属性值构成访问路径           

    每一个package标签都有一个namesapce属性,主要的作用就是从访问路径上、区分不同package下的action,namespace的值是访问某个action路径的一部          分,namespace的值 必须 以  / 开头。

   注意:namespace 的默认值 是 / ,在同一个struts.xml中,只能有一个package的默认形式。 

         

标签action="" 

name 属性  配置action的访问路径    与namespace进行配合       

              在一个package中可以有多个action标签,但是action的name属性值不能相同

class 属性        action的全限定性类名           

method 属性  

在一个action中默认执行的是execute方法如果想在同一个actuion中执行自定义方法则需要这个属性 

 <action name="password_*" class="com.baizhi.action.modifyLink" method="{1}">
   <result name="success" type="redirectAction">findUser</result>
  <result name="ok" type="redirectAction">findUser</result>
   </action>

例如: password_update 那么数字1 代表update  *的占位符 几个* 就代表数字几

标签result

1 根据action的方法返回值,配置到不同的路径里面

2 result标签属性

1)name属性

- 和方法返回值一样

标签Type

- 配置如何到路径中(转发或者重定向)

- type属性默认值 做转发操作

跨包跳转 只有action->action

                                                               技术分享图片

 

 同一个package下的跳转

1. action-->jsp

                  forward(默认状态)

 

                        <result name="ok" type="dispatcher">/success.jsp</result>

 

                   redirect

                       <result name="ok" type="redirect">/success.jsp</result>

2.action—>action

                 forward

                      <result name="ok" type="chain">action名字没有 / </result>

                  redirect

                    <result name="ok" type="redirectAction">action名字没有 / </result>

 全局跳转

作用:解决result标签配置冗余

注意:1.全局跳转标签必须配置在所有action之前。

          2.全局跳转只在本包内有效

          3.当全局跳转与 局部跳转冲突的时候 ,会以局部跳转优先。

                                                                     技术分享图片

 

 

总结跳转:

                                         技术分享图片

 

 

                                        技术分享图片

 

 Struts2常量配置

<!-- 设置默认的编码集 -->
<constant name="struts.i18n.encoding" value="utf-8"></constant>

1)表单提交数据到action里面,在action可以获取表单提交数据,

2)表单提交数据有中文,有乱码问题,解决:

- post提交直接设置编码

- get提交做编码转换

3)如果在action获取表单通过post方式提交中文,中文乱码问题帮解决了,不需要自己处理问题

 

 Struts2的分模块开发

单独写配置文件将配置文件引入到核心配置文件中

<include file="com/baizhi/config/modify.xml"></include>

Action编写的三种方式

第一种 创建普通类,这个不继承任何类,不实现任何接口

第二种 创建类,实现接口 Action

第三种 创建类,继承类 ActionSupport(一般使用)

访问action的方法重点

 

第一种 使用action标签的method属性,在这个属性里面写执行的action的方法

                     技术分享图片

 

 使用Method访问

                                                      技术分享图片

 

 

     

第二种 使用通配符方式实现

第三种 动态访问实现(不用)

action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置

- 把方法写成void

- 让返回值,返回 ”none”

                                                                  技术分享图片

 

 

 

 

如果eclipse没有提示的解决方法的

windows  ---》preferencecs--》

                                                                   技术分享图片

 

 

                                                                  技术分享图片

 

Struts2 入门

原文:https://www.cnblogs.com/zhulina-917/p/11519472.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!