代码拉取完成,页面将自动刷新
什么是Struts2
常见的web层(控制层)的框架
所有的web层的框架都会遵循一个前端控制器模型思想,但是所有web框架对于前端控制器模型思想的底层技术支持是不同的。
Struts2使用的就是
StrutPrepareAndExecutfilter
SpringMVC使用的就是
servlet(base servlet)
使用方式
<!-- 配置前端控制器 拦截所有的浏览器请求 -->
<filter>
<filter-name>struts2</filter-name>
<!-- 在整个项目下搜资源:ctrl+shift+t -->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
struts2自动写好的配置文件:
1. struts-core/org/apache/struts2/default.properties 已经配置好的键值对信息(action的后缀名地址访问 上传文件的大小控制....)
struts.action.extension = action
2. struts-core/struts-default.xml
struts2的默认包:struts-default 大量拦截器
3. struts-plugin.xml struts2整合spring需要用到的一个配置文件
暂时不用 到后面整合3大框架的时候 会导一个包 struts2-spring-plugin-2.3.24.jar
这个配置文件就是struts2-spring-plugin-2.3.24.jar包里面的
加载我们配置的:
4. struts.xml action的浏览器访问路径配置文件
struts.action.extension=abc
5. struts.properties(企业从来不用)
struts.action.extension=bcd
6. 加载StrutsPrepareAndExecuteFilter的初始化参数值
<!--该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。-->
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>action,,</param-value>
</init-param>
按照顺序加载这个配置文件的好处:
如果前面的配置文件内容与后面的配置文件内容一致了
以后面的配置文件内容为主,可以覆盖前面的内容
<?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>
<!--
可以覆盖前面加载的配置文件内容
name:key名称
value:value值
-->
<constant name="struts.action.extension" value="abc"></constant>
<!-- 使用动态方法 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<!--name: 包名 对于咱们来说意义不大 作用:给别人继承用
extends: 继承 默认值:默认基层struts2提供的一个包 包名:struts-default 继承哪个包 那这个包下的所有东西都有一份
namespace: 名称空间和浏览器访问地址相关
abstract:抽象的 默认是false 如果写成了true 代表当前的pageage下面不能出现action 他们2个是互斥的该包只能被用来继承
-->
<package name="test1" extends="struts-default" namespace="/">
<!--做action的地址访问路径
name:action的名字 和浏览器访问地址相关 namespace和name 组成了当前action的访问地址
class:全限定名
method: 可以不写 默认就是执行叫一个execute的方法-->
<action name="hello" class="test.DemoStruts">
<!--result: 接收返回值 name:返回的逻辑视图的别名-->
<result name="abc">/demo/demo_struts.jsp</result>
</action>
</package>
<include file="外部的action配置文件"></include>
</struts>
action的三种访问方式
<struts>
<package name="action_test" extends="struts-default" namespace="/">
<action name="product_add" class="test.ProductAction" method="add"></action>
<action name="product_delete" class="test.ProductAction" method="delete"></action>
<action name="product_update" class="test.ProductAction" method="update"></action>
<action name="product_find" class="test.ProductAction" method="find"></action>
</package>
</struts>
<package name="action_test2" extends="struts-default" namespace="/">
<action name="product_*" class="test.ProductAction" method="{1}"></action>
</package>
ActionSupport
,并重写execute方法和save方法。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。