SSH框架学习之struts2 ---- 1、 Struts2入门和快速上手
day01 Struts2入门
1、 struts2的创建
首先是idea的配置,在这篇指导下完成 传送门
第一步、创建action(类似servlet),每次访问action时执行里面的方法。
第二步、配置action类的访问路径
创建核心配置文件,名称和位置是固定的。src下的 struts.xml
下面介绍各个标签和属性
package
作用:类似于代码的包,用于区分不同的action。
标签的属性:
-
name : 和功能本身没有关系的,是为了用于区分不同的package
-
extend: 继承,固定为struts-default。类因此具备action功能
-
namespace:和action标签里面的name值构成访问路径(通过这个url发送的请求才会传给action)
action
作用:配置action的访问路径
标签的属性:
- name: 访问路径的一部分。同一个package下的action的name不可相同。
- class:全路径,为了反射时找到实体位置
- method:默认的是execute,假如现在希望执行的是update方法,那么method=“update”
result
作用:根据action的方法返回值,做跳转(不一定是页面,任何路径都行)
标签属性:
- name:和返回值进行匹配
- type: 配置跳转路径的方法,默认是转发(地址栏不变)
修改常量
最常用的一个,帮我们完善了post方式提交的中文乱码问题
2、图解struts2处理请求
3、协调开发
struts配置文件中,可以通过引入的方式引入文件。
4、动态地调用action的方法
我们希望不同的请求有不同的action方法去处理,比如说 add()方法处理添加的请求;remove()方法处理删除的请求。
学到这里,我们可以给不同的请求,在配置文件中添加相应方法的配置。这是能做到的。缺点是要写多个action标签
这里用通配符实现
思想就是,把一类请求都添加到一个action,再根据不同的返回值,响应相应的页面
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="hellodemo" extends="struts-default" namespace="/">
<!--访问hello_update 那么就执行update方法
{1}标识第一个*-->
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="User_*" class="com.lin.struts.StrutsDemo" method="{1}">
<result name="success">/hello.jsp</result>
<allowed-methods>add,hello</allowed-methods>
</action>
</package>
</struts>
注意
struts2.5版本对此进行更新
需要把dtd约束改成2.5。
然后二选一
要么加上<global-allowed-methods>regex:.*</global-allowed-methods>
要么加上<allowed-methods>add,hello</allowed-methods>