Struts2.xml的配置

框架初始知识:

Servlet  VS   Filter

Filter的性能更强,因为Servlet能实现的,Filter都能实现。

Filter还有拦截资源的作用 是Servlet所不能实现的。

Filter有FilterChain API,而Servlet没有对应的API。

1.包配置(package):

常用属性有:

name:必填属性,用来指定包名,以 name的值来调用此包

extends:可选属性,用来指定该包继承其他包,可以继承其他包中的Action定义、拦截器定义等。通常继承struts-default包

namespace:可选属性,用来指定该包的命名空间,如果某个包没有指定namespace属性,则该包使用默认的命名空间,默认的命名空间为"/"。

Action的搜索:http://localhost:8080/当前web应用名/namespace_value/Action_name.action

eg.  <package  name=""  extends=""  namespace="">

<!-- 定义处理请求url为login.action的Action -->

<action  name="login"  class="">

<!-- 定义处理结果字符串和资源之间的映射关系 -->

<!--   result元素中,name就是result元素的逻辑视图名称,如果省略了name属性,系统就将采用默认的name属性值,默认的name值是SUCCESS。结果类型有如下几种:(引用自慕课网)

Struts2通过在struts.xml文件中使用<result …/>元素来配置结果。Struts2提供了两种结果。

局部结果:将<result …/>作为<action …>元素的子元素配置。

全局结果:将<result …/>作为<global-results …>元素的子元素配置。

在package元素中配置<global-results>子元素:


<global-results>

<result name="error">/Error.jsp</result>

<result name="invalid.token">/Error.jsp</result>

<result name="login" type="redirect-action">Logon!input</result>

</global-results>

-->

<result  name="login">/login.jsp</result>

</action>

</package>

2.解决struts.xml中内容过多的问题:将一个配置文件分解为多个配置文件,那么在struts.xml中必须包含其他xml文件(include):

<struts>

<include file="struts-user.xml"></include>

<include file="struts-book.xml"></include>

    .

   .

   .

</struts>

3.Action:action必须放在一个指定的包空间下定义

3.1  Action的搜索顺序:

3.2  struts2提供了三种方式访问servlet API:大致分为两类

3.2.1: ActionContext:

public static ActionContext getContext() :获得当前Action的ActionContext实例。

public Object get(Object key) :此方法类似于调用HttpServletRequest的getAttribute(String name)方法。

public void put(Object key, Object value) :此方法类似于调用HttpServletRequest 的setAttribute(String name, Object o)。

public Map getParameters() :获取所有的请求参数。类似于调用HttpServletRequest对象的getParameterMap() 方法。

public Map getSession() :返回一个Map对象,该Map对象模拟了HttpSession实例。

public void setSession(Map session) : 直接传入一个Map实例,将该Map实例里的key-value对转换成session的属性名-属性值对。

public Map getApplication() :返回一个Map对象,该对象模拟了该应用的ServletContext实例。

public void setApplication(Map application) :直接传入一个Map实例,将该Map实例里的key-value对转换成application的属性名-属性值对。

3.2.3:  ServletActionContext:Action只要继承自该类,就可以直接访问Servlet API

3.2.2:实现***Aware或servlet***Aware接口:

4.动态方法调用:动态方法调用解决了一个包空间内action过多的问题,一个action可以对应多个请求的处理

注意:要使用动态方法调用,必须设置struts.enable.DynamicMethodInvocation常量来完成,该常量属性的默认值是true。

4.1  感叹号方式:

4.2  通配符方式:把method的属性指定为{数字}的形式,其他属性中包含method属性的可使用此来代替,其中{数字}表示它的值是name属性值中第几(数字)个*的值。在struts.xml文件中配置<action…>元素时,它的name、class、method属性都可支持通配符。

使用前:

<struts>

<package>

<action name="user_save"   class="cn.save.User"   method="save">

<result name="save">/save.jsp</result>

</action>

</package>

</struts>

使用后:

<struts>

<package>

<action name="user_* "   class="cn.{1}.User"   method="{1}">

<result name="{1}">/{1}.jsp</result>

</action>

</package>

</struts>

总结:通配符映射规则,若找到多个匹配,将选择没有通配符的那个进行执行。

若找到多个带有通配符的匹配,则按先后顺序进行选择

5.struts2的请求和响应过程:

6.常量配置:

Struts2框架有两个核心配置文件,其中struts.xml文件主要负责管理应用中的Action映射, 及Action处理结果和物理资源之间的映射关系。除此之外,Struts2框架还包含了一个struts.properties文件,该文件定义了Struts2框架的大量常量属性。但通常推荐也是在struts.xml文件中来配置这些常量属性。

<struts>

<constant   name=""   value=""  ></constant>

</struts>

时间: 2024-10-13 04:08:16

Struts2.xml的配置的相关文章

struts2中两种validation.xml的配置方式_百度文库

在struts中,根据配置的validation.xml文件进行页面输入项目的验证已经众所周知,本文介绍在struts2中两种validation.xml的配置方式.可以根据不同的需要进行不同的配置. 以下以login页面输入firstname,lastname,和age为例进行说明.struts.xml中,成功的话转向成功页面.不成功的话转回到原页面. 首先建立userbean文件.文件名:UserBean.java包:struts2.login.bean文件内容:package struts

IT忍者神龟之Struts2.xml配置完全正确流程能走通但是有红叉解决

一:Multiple annotations found at this line:Undefined actionName  parameter  Undefined actionnamespace  parameter 这个红色叉叉报错: Multiple annotations found at this line: - Undefined actionName parameter - Undefined actionnamespace parameter 但是不影响功能,但是配置多了,很

在配置文件web.xml中配置Struts2的启动信息

在配置文件web.xml中配置Struts2的启动信息: <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://ja

struts2.5.18配置及xml提示配置(请忽略排版问题,实在不会,但你一定看得懂)

https://struts.apache.org/这是官网,点击下面图示的按钮,下载红色勾的部分(别问为什么,我只会带你脱坑) 新建动态web工程不多说.导入以下jar包,这些jar包在这里. 将 用压缩软件解压,找到文件路径点击eclipse中-->preference选择下图所示的选项 网址是http://struts.apache.org/dtds/struts-2.5.dtd 配置完了就快活吧记住所有的struts.xml一定要编译后在classpath下 新建XML文件就可以 是不是

strut2_struts.xml文件配置知识点汇集

1.Struts2的基本流程 Struts2框架大致分为三部分: .核心控制器StrutsPerpareAndExecuteFilter,Struts2框架提供 .业务控制器 ,用户自己实现 .用户实现的业务逻辑组建,用户自己实现 Struts2应用中的Action用于处理用户请求的Action实例,并不是用户自己实现业务控制器,而是Action代理.因为用户实现的业务控制器并没有ServletAPI耦合,显然无法处理用户请求.而Stuts2框架提供了系列拦截器,该拦截器负责将HttpServl

Struts2笔记——3.配置处理结果

action只是一个控制器,真正为客户端呈现处理结果的是jsp文件.而action的工作,是要在xml中配置,在特定的情况下返回特定的jsp页面.action的java类中返回的是String类型,而它仅仅是一个逻辑处理结果,或者说它只是一个代号.只有在xml中配置了逻辑结果与物理结果的映射关系,jsp页面才会作为response呈现.其实Struts2支持多种结果映射,因此物理结果资源可以是jsp,也可以是另一个action链中的另一个action.result元素起到了一个路标的作用. 配置

struts2 通配符简化配置

在struts映射中重复出现的模式 动作方法 描述 下一个动作方法 add 为save准备网页 save save 提交INSERT list edit 为update准备网页 update update 提交UPDATE list destroy 为remove准备网页 remove remove 提交DELETE list show 为详细展示准备网页 list list 为列表展示准备网页 list print 为打印准备网页 list 一个动作类的DEMO: package com.ba

JAVAWEB开发之Struts2详解(二)——Action接受请求参数、类型转换器、使用Struts2的输入校验、以及遵守约定规则实现Struts2的零配置

Action接受请求参数 作为MVC框架,必须要负责解析HTTP请求参数,并将其封装到Model对象中 Struts2提供了非常强大的类型转换机制用于请求数据 到 model对象的封装 Struts2和MVC定义关系 StrutsPrepareAndExecuteFilter:控制器 在Struts2中action是什么?(Struts2是一个MVC框架) V:jsp M:action C:action StrutsPrepareAndExecuteFilter Struts2提供了三种数据封装

Struts2入门(二)——配置拦截器

一.前言 之前便了解过,Struts 2的核心控制器是一个Filter过滤器,负责拦截所有的用户请求,当用户请求发送过来时,会去检测struts.xml是否存在这个action,如果存在,服务器便会自动帮我们跳转到指定的处理类中去处理用户的请求,基本流程如下: 该流程笔者理解是基本流程,.如果有不对的地方,请下方留言.我会改正.谢谢: 好,接着往下讲: 注意:在struts.xml中,配置文件必须有该请求的处理类才能正常跳转,同时,返回SUCCESS字符串的类,必须继承ActionSupport