栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Struts2入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Struts2入门

本文章为大家介绍以下用IDEA开发工具创建Maven项目使用Struts2框架,对方法的调用和参数赋值,即前后端的数据交互有所介绍。

目录

Struts2框架

2、使用Sturts2

3、子控制器类方法的调用

4、参数赋值

5、与J2EE容器交互

非注入

  注入(实现接口为注入方式)            

总结:

6、经典错误


Struts2框架

Struts2 是基于MVC设计模式的web应用程序框架,最初是以WebWork框架和Struts框架为基础,通过提供增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。

模型(Model)-视图(View)-控制器(Controller),通常简称MVC,是一种开发web应用程序的软件设计模式。该软件设计模式由以下三部分组成:  

模型——属于软件设计模式的底层基础,模型主要负责管理应用程序的数据,它通过响应视图的请求和控制器的指令来更新自身的数据。  
视图——这部分是负责向用户呈现全部或部分数据,通过控制器的指令触发所展现的一种特殊的数据格式。它们是基于像JSP、ASP、PHP之类模板系统的脚本,较易与AJAX技术进行整合。 
控制器——通过软件代码控制模型和视图之间的交互,控制器负责响应用户输入并执行数据模型对象的交互。控制器在接收、确认输入后执行修改数据模型状态的业务操作

2、使用Sturts2

1、创建MavenWeb(3.0)项目(教程)并配置导入Maven的基本依赖

2、引入Sturts2的所有jar包

        配置pom.xml文件 

    2.5.13

    
      org.apache.struts
      struts2-core
      ${struts2.version}
    

3、配置核心过滤器 作用接收和分发请求        

  
    struts
    
    org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
  
  
    struts
    
    *.action
  

4、建立Struts2的核心配置文件 struts.xml 文件名为框架定义的,不能自定义

     建议struts-base.xml文件,用于配置struts的基本配置

struts-base.xml


    
    
    
    
    
    
    
        
        regex:.*

    
    

默认配置文件路径

以上的xml文件都引入DTD约束,因为我使用的是2.5版本的,所以是2.5的约束

 

以上约束复制位置在此找到对应的DTD约束

 看到这个Use the following DOCTYPE 代表使用此约束,只需要复制下面就可以使用此约束,

但是在idea中有可能已经帮我读取到了,在创建xml文件时就给我们加入了DTD约束

 5、建立Action类,再建立对应的Action的xml文件

struts-hellow.xml        -->HellowAction.java


    

    
        
        
            
            
            /index.jsp
        

    

再把struts-base.xml和struts-hellow.xml导入到核心配置文件struts.xml中

必须先引入struts-base.xml文件


    
    

到这里基本配置已经完成

3、子控制器类方法的调用

1、在struts-base.xml文件的默认配置文件中启用动态方法调用模式,不设置那么方法就固定了,一个子控制器类只可以调用一个方法

        regex:.*

2、在对应的子控制器类设置方法名        struts-hellow.xml

在对应的action的name属性中后面写_*,然后在method={1}

            
            
            /index.jsp
        

4、参数赋值

1、在子控制器类定义属性,必须提供get/set方法

2、对象属性赋值

        先实现ModelDrive接口,并实现改接口所定义的getModel()方法

        必须先对实体对象进行实例化,不需要给的get/set方法,并在getModel()方法中返回此对象

注:ModelDriven返回实体和Action中属性重名,ModelDriven中优先级更高

5、与J2EE容器交互

在子控制器类中

非注入


                  耦合
              ServletActionContext          

用ServletActionContext拿到两个内置对象
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
request.setAttribute("unam",unam);

        解耦(建立使用解耦模式)
              ActionContext

ActionContext ac = ActionContext.getContext();
Map Map = ac.getContextMap();
//给前端传入数据    
Map.put("unam",unam);

  注入(实现接口为注入方式)
            

                 耦合
              ServletRequestAware/ServletResponseAware

            实现ServletRequestAware和ServletResponseAware接口
         

        再实现两个接口所定义的方法

  定义两个属性

        public HttpServletRequest req;

        public HttpServletResponse resp;


 @Override
    public void setServletRequest(HttpServletRequest httpServletRequest) {
        this.req=httpServletRequest;
    }

    @Override
    public void setServletResponse(HttpServletResponse httpServletResponse) {
        this.resp=httpServletResponse;
    }

    

    req.setAttribute("unam",unam);

     

      解耦

           实现RequestAware接口

           实现此接口定义的方法setReuqest方法

public Map params;

    @Override
    public void setRequest(Map map) {
        this.params=map;
    }

    params.put("unam",unam);

总结:

        搭建struts2的运行环境步骤:

               1、配置pom.xml文件导入jar包

                2、配置struts2核心过滤器

                3、配置struts2核心配置文件struts.xml文件     放置于resources目录下

                               struts.xml(注意引入顺序)        struts-base.xml        struts-xxx.xml

                                dtd约束 struts-2.5.dtd   (动态方法配置)

                 4、子控制器类中的默认方法名excute

                        1、在sturts-base.xml中开启动态方法

                        2、在具体的struts-xxx.xml中的action节点中的name属性使用动态方法名

                                例:

                        3、调用:http://localhost:8080/xxx/hellowAction_方法名.action

               5、传参和页面跳转

                        传参:

                                1、直接在Action中定义属性,并且提供get、set方法

                                2、实现ModelDriven接口,实体类必须实例化,实现getModel方法

                       页面跳转:

                             /login.jsp

                                        

              6、J2EE容器交互

                        注入和非注入

                        耦合和解耦

          

6、经典错误

  此项目的请求路径错误(子控制器类不存在) 

调用方法异常 

代码链接 提取码:b5t8

至此,Struts2入门基本介绍完毕,由于作者水平有限难免有疏漏,欢迎留言纠错。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781393.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号