• struts2入门框架(第一例)


    ---恢复内容开始---

    第一天 入门

    概述:

    1Struts 框架用在javaee三层结构的web

    2struts2框架在Struts1webwork基础之上发展全新得框架

    之前的原始做法会创建很多servlet,造成维护特别不方便

    3: 过滤器拦下不同的操作 action

    4Struts2版本 2.3.24版本

    5web层常见框架 springMVC框架

    Struts2框架入门案例

    第一步,导入jar包

    1)不能把jar包都导入进去

    2)到apps目录里面找到,解压war包,把jar包复制到lib

    第二步操作:创建action

     

    第三步:配置action类访问路径

    1)创建一个struts 核心配置文件

    -名称和位置是固定的

    -位置必须在src下面,名称struts.xml

    2)引入dtd约束

    <!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

    3)配置struts.xml

     

    4)访问路径

    http://localhost:8080/struts2/hello.action

    (5)配置struts2过滤器的配置 web.xml设置;

    <filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StructsPrepareAndExecuteFilter</filter-class>

    </filter>

    <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

    </filter-mapping>

    浏览器中action中的路径struts反应机制

     

    查看源代码:

    查看过滤器中源代码

    1:过滤器在服务器启动时候创建,创建过程中会执行init方法

    1)在init方法中,主要做的就是加载配置文件

    -包含自己创建配置文件和struts2自带的配置文件

    重点关注:struts.xml,web.xml

     

    init_DefaultProperties(); // [1]

    init_TraditionalXmlConfigurations(); // [2]

    init_LegacyStrutsProperties(); // [3]

    init_CustomConfigurationProviders(); // [5]

    init_FilterInitParameters() ; // [6]

    init_AliasStandardObjects() ; // [7]

    struts2配置

    struts核心配置文件:

    1:名称和位置是固定的

     

    2:配置文件中的三个标签packageactionresult

    标签:package

    1:类似于代码中的包,区别不同的action,要配置action,必须首先写package标签,在package里面才能配置action

    2package标签里面的属性,

    1name属性:

    name属性值跟功能本身没有关系,在一个配置文件中可以写多个package标签,name

    性值不能相同

    2extends属性

     

    属性值固定的,struts-default

    写了这个属性之后,在package里面配置的类具有action功能

    3namespace属性

    名称空间,namespace属性值和action标签里面的name属性值构成访问路径

     

    标签action

    1action标签是配置action访问路径

    2action标签属性

    1name属性

    -namespace属性值和action标签里面的name属性值构成访问路径

    -package标签里面写多个action标签,但是action的属性值不能相同的

    2class属性

    -action全路径,包名+类名

    3method属性

    -比如在action里面默认执行的方法execute方法,但是在action里面写其他方法

    -action里面多个方法执行,使用method进行配置

    标签result

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

     

    2result标签属性

    1name属性

    -和方法返回值一样

    2type属性

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

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

    2struts默认的常量位置(记住)

    struts2-core.jar包中

     

    3:修改struts2默认常量值

    1)常用的方式

    -struts.xml中进行配置

    <constant name="struts.i18n.encoding" value="utf-8"></constant>

    2)还有两种方式(了解)

    -src下面创建文件struts.properties,进行修改

    -web.xml进行配置

    4:介绍最常用的常量

     

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

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

    解决:-post 提交直接设置编码

    -get提交做代码转换

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

    分模块开发

    1:单独写一个配置文件,把配置文件引入到核心配置文件中。

    比如你有一个hello.xml,在一个包下

    struts,xml中可以引入

    <include file="cn/ismy/hello/hello.xml"></include>

     

    结果也是一样的

    action的编写方式

    1action编写有三种方式,

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

     

    第二种:创建类,实现接口action(用的不多)

     

    第三种:创建类,继承Actionsupport(最常用的方式)

     

    实现方法

     

    使用action标签的method属性

    2演示错误

    1)如果action方法由返回值,在配置文件中没有配置,出现错误

    2)在action里面的方法有返回值,如果有返回值时候类型必须是String

    BookAction.java方法

     

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

     

    缺陷:action每个方法都需要配置,如果action方法有多个方法,配置很多action

    第二种:使用通配符方法实现(重点)

    1:在action标签里面name属性,name属性值里面写符号 * 星号

    1* 理解,可以匹配任意内容

    比如hello.*可以匹配到

    比如add.*可以匹配到

     

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

    ---恢复内容结束---

  • 相关阅读:
    解决linux下fflush(stdin)无效
    《转载》使用Chrome浏览器截取整个网页
    JDK切换版本
    消息队列函数(msgget、msgctl、msgsnd、msgrcv)及其范例
    Oracle 账户
    Oracle linux 安装 相关
    Android高德地图获取当前缩放等级及可视区域四个角的坐标
    Intellij idea 导入项目之后编译错误:无效的源版本:7
    数据库异常整理:org.hibernate.QueryException: could not resolve property: “mStation”
    MySQL(六)多表查询
  • 原文地址:https://www.cnblogs.com/yq12138/p/7202349.html
Copyright © 2020-2023  润新知