struts2_03

struts2学习_03

struts2核心配置文件

  • 1、struts.xml名称和位置固定。默认放在项目的src源文件夹下,如果想改变位置,可以在web.xml中配置。
  • 2、配置文件中主要三个标签有
    package、action、result,标签里的属性。

标签package

  • 1 类似于代码包,区别不同的action,要配置action,必须首先写package标签,在package里面才能 配置action
  • 2 package标签属性
    (1)name属性。
    name属性值根功能本身没有关系的,在一个配置文件中可以写多个package标签,name属性值不能相同的
    (2)extends属性。extends="struts-default"
    属性值固定的,struts-default
    写了这个属性之后,在package里面配置的类具有action功能
    (3)namespace属性。namespace="/"
    namespace属性值和action标签里面的name属性值构成访问路径

标签action

  • 1 action标签里配置action访问路径
  • 2 action标签属性
    (1)name属性
    namespace属性值和action标签里面的name属性值构成访问路径
    在package标签里面写多个action标签,但是action的name属性值不能相同的
    (2)class属性
    action类的全路径
    (3)method属性
    比如在action里面默认执行的方法execute方法,但是在action里面写其他的方法,让action里面多个方法执行,使用method进行配置

标签result

  • 1 根据action的方法返回值,配置到不同的路径里面
  • 2 result标签属性
    (1)name属性
    和action中的方法返回值相同,配置返回值跳转至不同的页面
    (2)type属性
    配置如何到路径中(转发或者重定向)
    type属性默认值 做转发操作(不写)

struts2常量配置

  • 1 struts2框架,帮我们实现一部分功能,struts2里有常量,在常量中封装一部分功能
  • 2 struts2默认常量位置为,项目库struts2核心jar包下
    struts2-core-2.3.24.jar/org.apache.struts2/default.properties
  • 3 修改struts2默认常量值
  • (1)常用方式
    在struts,xml中进行配置
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    (2)还有两种方式
    在src下面创建 struts.properties,进行修改
    在web.xml进行配置
  • 4 最常用常量
    struts.i18n.encoding=UTF-8
    (1)表单提交数据到action里面,在action可以获取表单提交数据,
    (2)表单提交数据有中文,有乱码问题,解决:
    post提交直接设置编码
    get提交后需要做编码转换
    (3)如果在action获取表单通过post方式提交中文,中文乱码问题帮解决了,不需要自己处理问题

分模块开发

  • 单独写配置文件,把配置文件引入到核心配置文件中
    <!-- 引入hello.xml文件 -->
    <include file="cn/com/action/hello.xml"></include>

action编写方式

  • 1 action编写有三种方式
    第一种 创建普通类,这个不继承任何类,不实现任何接口
    第二种 创建类,实现接口 Action
    第三种 创建类,继承类 ActionSupport(经常使用)

访问action的方法

  • 1 有三种方式实现
    第一种 使用action标签的method属性,在这个属性里面写执行的action的方法
    第二种 使用通配符方式实现(最常用)
    第三种 动态方法调用

  • 2 常犯错误
    (1)如果action方法有返回值,在配置文件中没有配置,出现404错误
    (2)在action里面的方法有返回值,如果有返回值时候类型必须是String
    (3)action里面的方法可以没有返回值,没有返回值时候,在result标签不需要配置或者 把方法写成void 让返回值,返回 ”none”

  • 3 使用action标签method属性

  • <action name="userAction" class="cn.com.action.HelloAction" method="add"></action>
    action标签的method属性值是action类中的方法名
    缺点:action每个方法都需要配置,如果action里面有多个方法,配置很多的action

  • 4 使用通配符实现(最常用)
    在action标签里面name属性,name属性值里面写 符号 * 星号
    <action name="hello_*" class="cn.com.action.HelloAction" method="{1}"></action>
    “ * ” 表示匹配任意内容 ,**method={1}**表示第一个“ * ”的值。
    比如说访问add方法,method={1}表示把add值放到第一个“ * ”号,最后访问的就是 hello_add.action
    这种方法的好处就是当配置太多时,通过合理设计jsp中的结尾和类名及方法名,可以极大减少代码量!

  • 5 动态方法调用
    首先在struts.xml中开启动态方法访问
    <!--开启动态方法模式 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
    访问路劲写为:
    <a href="${pageContext.request.contextPath}/hello!addUser">添加</a>
    通过“”前的字符找到action标签的name属性值,找到相应的类,“”后面的字符表示执行的方法,类名和方法名找到了自然就可以调用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值