===============
<package>
===============
struts.xml 中的package的name可以随意定义,只做继承时使用。
===============
<constent>
===============
struts.xml 中
用<constent name="" value=""/>
来改变default.proerties 中key对应的值
==============================================
覆盖默认的资源文件 -- default.properties
==============================================
也可以在clasess(/src)下建立struts.properties的方式,覆盖默认的配置文件default.proerties
内容如:
struts.i18n.encoding=gbk 设置字符集
struts.action.extension=do 设置请求后缀名
struts.configuration.files=struts-default.xml,struts-plugin.xml,struts.xml Struts2自动加载的配置文件
==============
抽象包
==============
<package name="..." abstract="true">
表示该包中不能有action定义,只能通过包来继承来定义
=============
命名空间
=============
<package name="..." namespace="">
将不同的应用分割开
如果不配置,表示当前包在一个默认的命名空间里
namespace="/hello"
请求路径就改变为 /hello/register
需要更改表单路径 并且一定要手工加.action
<s:form action="/hello/register.action">
寻找方式,如果namespace为默认,而表单路径为/hello/register.action
当struts没有找到该命名空间是,自动到默认的命名空间找
=============================
<include> 模块化的配置
=============================
<include file="struts_1.xml"></include>
<include file="struts_2.xml"></include>
struts_1.xml和struts_2.xml都是标准的strust的xml配置文件
include后,struts会在启动后将struts_1.xml和struts_2.xml的配置信息一同加载到内存中。
===============
Struts2 MVC
===============
FilterDispatcher ----- 核心控制器
每个action ------- 业务控制器
--------- 调用业务逻辑组件 ---- 调用DAO ---- 数据库交互
=================
分模块开发
=================
src下建立
struts1.xml
struts2.xml
不同的开发人员,只需要写自己的xml配置文件
只需要加入到struts.xml中
<include file="struts1.xml"/>
<include file="struts2.xml"/>
----------------
struts1.xml
xml声明,DTD信息... 结构与struts.xml相同
<struts>
<package name="" ...>
...
...
...
----------------
struts2.xml
xml声明,DTD信息... 结构与struts.xml相同
<struts>
<package name="" ...>
...
...
...
================
模型驱动
================
**属性驱动**:表单的字段都作为Action的属性存在
**模型驱动**:用一个JavaBean来装载对象 类似于ActionForm
模型Bean
public class User {
private String username;
private String password;
private String repassword;
private int age;
private Date date;
// setter... getter...
}
### ValueStack ### --值栈
ModelDriven<T> 该接口使用的泛型,
模型是什么类型那个的泛型就是什么类型
------ T getModel()
Action 需要实现 ModelDriven接口
public class RigesterAction extends ActionSupport
implements ModelDriven<User> {
private User user = new User();
public User getModel() {
return user;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
====================
Preparable 接口
====================
Preparable接口中有一个void prepare() throws Exception方法,实现该接口的Action类,将在执行这个action所以方法之前执行prepare(),称为action准备方法。
=========================
显示特定的出错信息
=========================
<s:fielderror cssStyle="color:red">
<s:param>username</s:param>
</s:fielderror>
去掉前面的“原点”
需要自己修改 fielderror.ftl模板
去掉前面的点代码
================================================
动态方法调用 dynamic method invocation dmi
================================================
一个action中写若干个业务逻辑方法,不同的请求调用不同的方法
-1- 第一种
页面调用不同的请求路径
配置文件中声明多个action,并且加上method参数指定对应的方法
action中编写多个同构于execute()的业务逻辑方法
-2- 页面中配置
--------
jsp页面
--------
<s:form action="login!hello.action">
!前面的login匹配struts.xml中action的name
!后面的hello匹配actin类中的hello()方法
----------
struts.xml
----------
<action name="login" class="....LoginAction">
...
...
---------
action中
---------
public String hello() throws Exception {
......
}
-- 3 -- 使用通配符
--------
jsp页面
--------
<s:form action="helloLogin">
...
...
----------
struts.xml
----------
用 * 进行模糊匹配 即:helloLogin请求找到 Login这个action
然后 通过method的参数 指定 请求的模糊匹配部分为对应到action类中的方法名
即:hello,该请求将会调用action类的hello()方法。
<action name="*Login" class="....LoginAction" method="{1}">
...
...
---------
action中
---------
public String hello() throws Exception {
......
}
=======================================
<result>的type属性---定义结果类型
=======================================
可以在struts2-core包中的struts-default.xml中查看都有什么类型
包括:
chain action链
将多个action作为一个链进行处理,处理完一个紧接着处理下一个action
dispatcher (默认) 请求转发
freemarker
httpheader
redirect 重定向到另外一个视图资源 (request失效)
redirectAction 重定向到另外一个action (request失效)
stream
velocity
xslt
plainText
====================
动态结果
====================
有些时候,在Action执行完毕之后才知道Result的指向,可以使用如下的方法:
1.Action
private String nextAction;
public String getNextAction() {
return nextAction;
}
public String execute() throws Exception {
return “next”;
}
2.struts.xml
<action name="fragment" class="FragmentAction">
<result name="next" type="redirect-action">${nextAction}</result>
</action>
分享到:
相关推荐
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...
struts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jarstruts2-spring-plugin-2.3.15.2.jar ; struts2-json-plugin-2.3.16.3.jar
struts2-struts1-plugin-2.1.6.jar
本补丁是针对 struts2-core-2.0.11.jar 的修改, 把文件中 bin下的文件直接copy到 web-inf/classes下, 重启web server, 就可解决问题(代码修改采用 jason.zhou 的方案, 做了一点改动), 源码在压缩文件的src目录下
Struts2 最新漏洞 S2-016、S2-017 修补方案 Struts2 是一个基于 Java 的 Web 应用程序框架,由 Apache 软件基金会维护。最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者...
`struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
struts2-ssl-plugin-1.2.1.jar
标题中的“K8_Struts2_EXP S2-045 & 任意文件上传 20170310”指的是一个与Struts2框架相关的安全漏洞,具体为S2-045漏洞,该漏洞允许攻击者进行任意文件上传。20170310可能是漏洞被发现或公开的日期,也可能是指该...
最新struts2-struts1-plugin-2.1.8.1.jar
Struts2 JSON Plugin是针对Apache Struts2框架的一个重要组件,版本为2.3.8。这个插件主要的功能是让Struts2应用程序能够轻松地处理JSON(JavaScript Object Notation)数据格式,使得Web应用可以方便地进行JSON序列...
Struts2-dojo-plugin-2.2.1.jar 是一个针对Apache Struts2框架的扩展插件,主要用于增强Struts2应用的用户界面交互性,特别是通过集成Dojo JavaScript库来提供丰富的AJAX功能和用户体验。这个插件是Struts2与Dojo ...
包含struts2-core-2.5.10.1.jar,struts2-jfreechart-plugin-2.5.10.1.jar,struts2-json-plugin-2.5.10.1.jar,struts2-junit-plugin-2.5.10.1.jar,struts2-bean-validation-plugin-2.5.10.1.jar,struts2-cdi-...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
struts2-config-browser-plugin-2.3.24.jar, struts2-core-2.3.24.jar, struts2-jasperreports-plugin-2.3.24.jar, struts2-jfreechart-plugin-2.3.24.jar, struts2-pell-multipart-plugin-2.3.24.jar, struts2-...
struts2-dojo-plugin-2.3.4 jar 日期控件的jar包 需要的自行下载
标题"Struts2入门笔记1-4"暗示了这是一个关于Struts2基础知识的学习过程,涵盖了从基础到进阶的内容,可能包括了Struts2的核心概念、配置、拦截器以及实际应用等。 描述中提到,Struts2的控制实现是通过Filter来...
输出Hello World 使用到struts2标签和jstl表达式 2、 URL:http://localhost:8080/struts100515 输入用户名XXX ------> 提交 ,显示 你好 XXX 使用ONGL表达式 3、 URL:...
首先,我们来看`struts-json-plugin-2.1.8.jar`,这是Struts2的JSON插件,它允许Struts2的动作类直接返回JSON格式的数据,方便前端进行Ajax请求处理。该插件在2.1.8版本中修复了若干bug,并提供了对JSON输出的支持。...