在Struts2中提供了依赖注入的功能
在ridirectAction重定向至某一action配置中
<result type="xxx">
<param name="actionName">action名称</param>
<param name="namespace">/命名空间</param>
</result>
当把result类型声明为redirectAction的时候,如果若重定向到其他命名空间下action的时候,我们需要使用param配置节点,为xxx这个类型所对应的这个类中actionName、namespace这两个属性注入值
这就是属于依赖注入。
在Struts2中的配置文件中,我们可以很方面的为Action中的属性注入值。注意:属性必须提供set()若在页面中显示 必须提供get()
<action name="xxx" class="xxx.xxx.xxx.xxxAction">
<param name="名称" >注入的属性值</param>
</action>
【strus处理请求后缀】
若对某action进行访问,默认使用.action后缀访问Action。其实默认后缀是可以通过常量“struts.action.extension”进行修改 我们可以配置Struts2只处理以.do为后缀的请求路径
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.action.extension" value="do"/>
</struts>
如果用户需要指定多个请求后缀 ,则多个后缀之间以英文逗号【,】
隔开
<constant name="struts.action.extension" value="do,go"/>
常量可以在struts.xml或struts.properties中配置,建议在struts.xml中配置,两证配置方式如下:
<struts>
<constant name="struts.action.extension" value="do,go,action"/>
<struts>
在struts.properties中配置常量
struts.action.extension=do
因为常量可以在下面多个配置文件中进行定义,所以我们需要了解struts2加载常量的搜索吮吸:
struts-default.xml
struts-plugin.xml
struts.xml
strtus.properties
web.xml
如果在多个文件中配置同一个常量,则后一个文件配置的常量值会覆盖前面文件中配置的常量
【常用到的常量】
<!--指定默认编码集 ,作用于HttpServletRequest的setCharacterEncoding方法和freemarker、velocity
setCharacterEncoding作用:当以post方式发送中文请求参数的时候,tomcat接收到这个参数默认的编码的是ISO8859-1,若想得到正确的中文参数,我们可以调用request的setCharacterEncoding() 所有配置文件中的value值应用于setCharacterEncoding这个方法
-->
<constant name="struts.i18n.encoding" vlaue="UTF-8"/>
<!--该属性指定需要的Struts2 处理的请求后缀,该属性的默认是action,即所有匹配*.action的请求都由Struts2出来
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。
-->
<constant name="struts.action.extension" value="do,go,action"/>
<!--设置浏览器是否缓存静态内容,默认值为true(生产环境下使用)开发阶段最好关闭-->
<constant name="struts.server.static.browserCache" value="false"/>
<!--当struts的配置文件修改后,系统时候自动重新加载该文件,默认值为false(生产环境下使用)开发阶段最好打开-->
<constant name="struts.configuration.xml.reload"/>
<!--开发模式下使用,这样可以打印出更详细的错误信息-->
<constant name="sruts.devMode" value="true"/>
<!--默认属视图的主题-->
<constant name="struts.ui.theme" value="simple"/>
<!--与Spring集成时,指定spring负责action对性的创建-->
<constant name="struts.objectfactory" value="spring"/>
<!--该属性设置Struts2 是否支持动态方法调用,该属性的默认值是ture。如果需要关闭动态方法的调用,则可设置该属性为false-->
<constant name="struts.enable.dynameicMethodlnocation" value="false"/>
<!--上传文件的大小限制
比方说利用struts 上传大问比如说超过5M,默认的情况下struts2是不接收的也就是说struts2不接收超过他默认大小限制的文件
注:上传文件的大小不是单文件的大小而上上传文件总数的大小
-->
<constant name="struts.multipart.maxSize" value="10701096"/>
分享到:
相关推荐
总结起来,Struts2的Action属性注入值功能是通过OGNL和拦截器实现的,极大地提高了开发效率和代码的可维护性。开发者只需要关注业务逻辑,无需手动处理请求参数的绑定。这种特性使得Struts2成为构建Web应用的有力...
在Struts2中,可以通过Action类的getter和setter方法来定义可注入的属性。当配置文件(如struts.xml或struts-plugin.xml)中声明了这些属性及其值时,IoC容器会在实例化Action时自动设置它们。 然而,对于boolean...
9.1 为什么在Struts 2中使用Spring 196 9.1.1 依赖注入能做些什么 197 9.1.2 Spring如何管理对象和注入依赖 199 9.1.3 使用接口隐藏实现 200 9.2 将Spring添加到Struts 2 202 9.2.1 让Spring管理动作、拦截器和结果...
例如,如果表单中有两个字段`user.username`和`user.password`,那么Struts2将会尝试将这两个字段的值分别设置到Action类中名为`user`的对象的`username`和`password`属性上。 #### 四、示例代码分析 下面通过一个...
在Struts2框架中,获取页面表单提交的值是一个常见的需求,这涉及到Struts2如何解析请求参数、如何在Action类中访问这些参数以及如何处理复杂的对象模型。以下将详细解析Struits2中获取页面值的方法,包括基本类型...
- **Struts2**: 支持为每个Action定义不同的拦截器堆栈(Interceptor Stacks),这意味着可以根据不同的Action来配置不同的拦截器组合,增加了灵活性。 通过上述对比可以看出,Struts2相比Struts1在很多方面进行了...
《Struts2 in Action》是一本专为Java开发者编写的实战型指南,旨在帮助初学者深入理解和掌握Struts2框架的使用。Struts2是Java Web开发中的一个流行MVC(Model-View-Controller)框架,它极大地简化了构建动态Web...
`07_传智播客struts2.1视频教程_为Action属性注入值.rar`将指导你如何将用户请求的数据自动绑定到Action类的属性上,这是通过Struts2的OGNL(Object-Graph Navigation Language)表达式语言实现的。这种数据绑定使得...
Struts2 则直接使用 Action 的属性作为输入属性,无需额外的 ActionForm 对象,支持丰富的对象类型,如业务对象,简化了数据绑定和验证。 6. **表达式语言**: - Struts1 使用 JSTL 的 EL(Expression Language)...
相比之下,Struts2为每个请求创建新的Action实例,消除了线程安全问题,也简化了开发流程。 在Servlet依赖上,Struts1的Action直接依赖于Servlet API,这意味着Action的execute方法接收HttpServletRequest和...
在Action类中定义与表单字段同名的属性,Struts2会自动将请求参数值赋给这些属性。此外,Struts2还支持通过`@Param`注解来指定参数映射,使得参数注入更加灵活。 4. **内置对象获取**:Struts2提供了一系列内置对象...
在Struts2中,我们可以使用OGNL(Object-Graph Navigation Language)表达式来访问Action中的属性并展示在页面上。 4. **拦截器(Interceptors)**:Struts2提供了一种机制,允许在Action执行前后执行一些通用任务...
9. **Struts2与Spring集成**:Struts2可以方便地与Spring框架集成,实现依赖注入,便于管理Action对象及其依赖。 10. **异常处理**:Struts2提供了全局的异常处理机制,通过`<global-exception-mappings>`标签定义...
开发者可以通过OGNL表达式访问Action属性,以及在JSP中动态地显示和修改数据。 7. **插件(Plug-ins)**:Struts2支持丰富的插件系统,如Struts2-convention-plugin、Struts2-dojo-plugin等,这些插件提供了更多的...
- **类型转换**:Struts 2提供了一套强大的类型转换机制,能够自动将表单数据转换为适当的对象属性。 - **国际化支持**:Struts 2内置了对多语言的支持,使得开发国际化应用变得更加简单。 - **AJAX集成**:通过...
1. **Action类**:这些类通常会继承自`org.struts2.StrutsAction`或实现`com.opensymphony.xwork2.Action`接口。Action类定义了业务逻辑,比如用户登录、注册等操作。 2. **配置文件**:主要指`struts.xml`,这是...
### Struts2中Action获取属性范围的方法 #### 一、引言 在Struts2框架中,为了实现灵活的应用逻辑处理,开发人员往往需要在Action类中获取诸如`request`、`session`等HTTP范围对象的数据。Struts2提供了一系列方便...
6. **OGNL(Object-Graph Navigation Language)**:Struts2内部使用OGNL作为表达式语言,它允许在Action与视图之间传递数据,如在JSP中直接访问Action属性。例如,`${user.name}`可以获取UserAction中的name属性值...