Struts2配置文件通配符的使用说明

合集下载

Struts2配置参数

Struts2配置参数

一、Struts2配置文件Struts2相关的配置文件有web.xml,struts.xml,struts.properties,struts-default.xml,velocity.properties,struts-default.vm。

其中web.xml,struts.xml是必须的,其它的配置文件可选择。

它们在web应用中的功能如下:web.xml:包含所有必须的框架组件的web部署描述符。

Struts.xml:配置包含result/view类型、action映射、拦截器等的Struts2的主要配置文件。

Struts.properties:配置struts2的框架属性。

Struts-default.xml:在文件在struts-action-x.x.jar中,该文件是应该被包含在struts.xml中的缺省配置。

Welocity.properties:重写了velocity的配置文件。

Struts-default.vm:相对于velocity的缺省配置。

二、Struts2配置元素Struts2核心的配置文件是缺省的struts.xml。

必要的时候,缺省的配置文件可以包含其它的配置文件;struts文件可以放入jar中,并自动插入应用程序,这样每个模块可以包含自己的配置文件并自动配置。

在Freemarker和V elocity 模块中,模板也能从classpath中加载,所以整个模块可以作为一个简单的jar文件被包含。

Struts.xml配置文件可以包含Interceptor、Action类和Results。

Struts.xml配置元素说明:1、PackagesPackages:packages把actions、results、results types、interceptors和interceptor-stacks组装到一个逻辑单元中,从概念上讲,packages就像一个对象,可以被其它子包从写,而且可以拥有自己独立的部分。

Struts2配置文件详解——s...

Struts2配置文件详解——s...
32.<beantype="org.apache.struts2.dispatcher.mapper.ActionMapper"name="restful2"class="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper"/>
33.
34.<beantype="org.apache.struts2.dispatcher.multipart.MultiPartRequest"name="struts"class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest"scope="default"optional="true"/>
63.
64.<beantype="com.opensymphony.xwork2.TextProvider"name="struts"class="com.opensymphony.xwork2.TextProviderSupport"/>
65.
66.
67.<!-- Struts2中一些可以静态注入的bean,也就是不需要实例化的 -->
11.
12.<beantype="com.opensymphony.xwork2.ActionProxyFactory"name="xwork"class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>

轻松学Java Web开发之Struts 2配置详解

轻松学Java Web开发之Struts 2配置详解

9.1.3 struts-default.xml和 struts.properties文件
struts.properties文件是一个标准的属性文件,该文件 包含了大量的key-value对,每个key就是一个Struts 2 属性,该key对应的value就是Struts 2的一个属性值, 我们可以举一个例子如图9.7所示。
注意:Struts 2提供了两种设置Struts 2属性的方式:通过 struts.properties以key-value方式来设置Struts 2属性,也可 以在struts.xml文件中通过<constant>标签来设置Struts 2的 属性。
9.2 struts.xml文件配置详解
在Struts 2框架的配置文件struts.xml文件中,可以将 配置内容分为三大类,其中的每种元素可以包含不 同的配置内容,如图9.9所示。
Struts 2框架的主要配置文件如表9.1所示。
配置文件 web.xml struts.xml struts.properties struts-default.xml struts-plugin.xml 必选 是 否 否 否 否 位置(相对于webapp) /WEB-INF/ /WEB-INF/classes /WEB-INF/classes /WEB-INF/lib/struts2-core-x.x.x.jar /WEB-INF/lib/struts2-xxx-plugin.jar 说明 Web部署描述文件,包括所有的必需框架 组件 Struts 2主要配置文件 Struts 2框架的属性配置文件 Struts 2框架提供的默认配置 Struts 2框架的插件配置文件
该参数表示自定义的ConfigurationProvider类,用户可以提供一个或多个实现了 ConfigurationProvider接口的类,并将这些类名设置成configProviders属性值。多个类名间 用英文逗号分隔

2struts2中常用的配置文件及result返回类型

2struts2中常用的配置文件及result返回类型

1.web.xml文件主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。

这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml 配置文件,还有的会影响struts框架的行为。

除了StrutsPrepareAndExecuteFilter外,Struts还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。

2.struts.xml文件框架的核心配置文件就是这个默认的struts.xml文件,在这个默认的配置文件里面我们可以根据需要再包括其它一些配置文件。

在通常的应用开发中,我们可能想为每个不同的模块单独配置一个struts.xml文件,这样也利于管理和维护。

这也是我们要配置的主要文件3.struts.properties(参default.properties)在Struts框架使用了很多属性,我们可以通过改变这些属性来满足我们的需求。

要改变这些属性,只需在struts.properties文件中指定属性的key和value即可。

属性文件可以放在任何一个包含在classpath中的路径上,但是通常我们都把它放在/WEB-INF/classes目录下面。

我们可以在struts-default.properties文件中找到一个属性的列表。

4.struts-default.xml此文件是struts2框架默认加载的配置文件,它定义了struts2一些核心bean和拦截器,它会自动包含(included)到struts.xml文件中(实质是通过<package extends="struts-default">),并为我们提供了一些标准的配置。

Struts2文件配置介绍

Struts2文件配置介绍

Struts2⽂件配置介绍Struts2⽂件配置介绍struts2structs.xml⽂件配置标签package标签<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><!-- 配置post请求以及repsone的编码格式 --><constant name="struts.i18n.encoding"value="UTF-8"></constant><!-- 配置请求路径的扩展名 --><constant name="struts.action.extension"value="action,,"></constant><!-- 开启热部署 --><constant name="struts.devMode"value="true"></constant><package name="index"namespace="/"extends="struts-default"><action name=""class="erAction"method="toLogin"><result name="toLogin">/WEB-INF/view/login.jsp</result></action></package><include file="com/forward/test/web/action/struts.xml"></include></struts>配置web应⽤的不同模块,⼀般在⼀个功能模块下配置⼀个package,在当前的package下配置这个模块的多个action name属性给不同的模块起不同的名字,随便写,不重复即可namespace属性给不同的模块设置访问的根路径,可以配置成/extends属性表⽰继承, struts-default 是struts2给我们提供的⼀个packageaction标签action 标签表⽰配置⼀个请求name 属性表⽰请求路径的后缀,⼀般表⽰功能模块中的具体请求,name的名字就代表访问路径的名称class 属性表⽰当有请求过来的时候调⽤的是哪个类中的⽅法,配置全类名method 表⽰class 请求调⽤的是class 中的哪个⽅法,指的是具体的⽅法名result标签result 结果配置,⽤于设置不同的⽅法返回值,可以配置不同的返回值对应不同的视图name 属性表⽰结果处理名称,与action中的返回值对应type 属性表⽰指定哪个result 类来处理显⽰的页⾯,默认是内部转发,可以在struts-default 的⽂件中进⾏查看标签体表⽰相对路径,相对于web应⽤开始常量配置默认的常量配置在structs核⼼包中修改常量配置⽅式及加载顺序对于常量的配置, 默认加载的是structs核⼼包中的default.properties,如果通过以下3种进⾏配置,就会按照默认–>1–>2–>3 的顺序加载,后⾯设置的常量会覆盖之前设置的常量1. 在structs.xml⽂件中,在structs的根标签下,书写constant 标签进⾏配置,在项⽬中主要使⽤这种⽅式2. 在src下创建structs.properties⽂件,将内容复制到此⽂件进⾏修改3. 在web.xml⽂件中,配置context-param 第⼀种⽅式第⼆种⽅式第三种⽅式常⽤常量设置struts.i18n.encoding=UTF-8 ⽤于配置接收参数和向外输出中⽂的编码格式⼀般设置为UTF-8struts.action.extension=action, 指定访问action的路径的后缀名,使⽤, 表⽰可以有两个后缀名,可以是action也可以是没有后缀名struts.devMode = false 指定structs是否是以开发模式运⾏,能够⽀持修改配置⽂件后进⾏热部署,所以我们可以将其设置为true动态⽅法调⽤如果⼀个业务模块有多个⽅法,我们可以使⽤动态⽅法调⽤省略action的配置,设置动态⽅法调⽤有两种⽅法⽅法⼀开启动态⽅法调⽤<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>配置action的时候不写method在访问的时候输⼊⽹址http://localhost:8080/webapp/namespace/name!method ⽅法⼆ 通配符⽅式关闭动态⽅法调⽤对于⽅法名可以使⽤⼀个* 通配符,在后⾯的class和method可以使⽤{索引} 来读取前⾯的内容访问路径localhost:8080/webapp/namespace/class_methodstructs2中的默认配置<constant name ="struts.enable.DynamicMethodInvocation" value ="true"></constant><package name ="helloWorld" namespace ="/User" extends ="struts-default"><action name ="d_" class ="com.zhiyou100.struts.web.action.demo3.Demo3Action" ><result name ="success">/hello World.jsp </result></action> </package><package name ="demo3" namespace ="/User" extends ="struts-default"><action name ="*_*" class ="com.zhiyou100.struts.web.action.demo3.{1}" method ="{2}"><result name ="success">/helloWorld.jsp </result></action></package>method的默认值executeresult的默认值是successresult的type的默认值是dispatcherclass的默认值是ActionSupport 其中有execute ⽅法返回值是success配置package下的默认的action,当访问当前包下,如果找不到指定action,就会⾃动寻找默认的action <package name="default"namespace="/user"extends="struts-default"><default-action-ref name="demoAction"></default-action-ref><action name="demoAction"class="erAction"><result>/WEB-INF/view/404.jsp</result></action></package>结果跳转的⽅式结果的跳转⽅式可以通过result的type属性进⾏设置转发转发到指定页⾯对于type属性,默认是dispatcher ,就是转发到响应界⾯,可以不⽤进⾏配置转发到指定action对于type属性需要设置为chain ,并在其下⽅配置<param> 标签<result name="error"type="chain"><param name="namespace">/</param><param name="actionName"></param></result>重定向重定向到指定界⾯对于type属性,设置为redirect ,就是重定向到界⾯,如果需要进⾏重定向就必须进⾏此处的设置<result name="error"type="redirectAction"><param name="namespace">/</param><param name="actionName"></param></result>。

struts2注解使用

struts2注解使用

struts2注解使用从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention 插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。

如何使用Convention1. 将struts-Convention-plugin-2.1.6.jar文件复制到WEB-INF/lib路径下2. 对于Convention插件而言,它会自动搜索位于action,actions,struts,struts2包下的所有java类,Convention插件会把如下两种java类当成Action 处理:1)所有实现了com.opensymphony.xwork2.Action的java类2)所有类名以Action结尾的java类3. Convention插件还允许设置如下三个常量:1)struts.Convention.exclude.packges:指定不扫描哪些包下的java类,位于这些包结构下的java类将不会自动映射成Action;2)struts.convention.package.locators:Convention插件使用该常量指定的包作为搜寻Action的根包。

对于actions.fore.LoginAction类,按约定原本应映射到/fore/login;如果将该常量设为fore,则该Action将会映射到/login 3)struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action类。

Convention插件除了扫描action,actions,struts,struts2四个包的类以外,还会扫描该常量指定的一个或多个包,Convention会试图从中发现Action类。

struts2中struts.xml配置文件详解

struts2中struts.xml配置文件详解

struts2中struts.xml配置⽂件详解struts.xml的常⽤配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "/dtds/struts-2.3.dtd"><struts><!-- 所有匹配*.action的请求都由struts2处理 --><constant name="struts.action.extension" value="action"/><!-- 是否启⽤开发模式 --><constant name="struts.devMode" value="true"/><!-- struts配置⽂件改动后,是否重新加载 --><constant name="struts.configuration.xml.reload" value="true"/><!-- 设置浏览器是否缓存静态内容 --><constant name="struts.serve.static.browserCache" value="false"/><!-- 请求参数的编码⽅式 --><constant name="struts.i18n.encoding" value="utf-8"/><!-- 每次HTTP请求系统都重新加载资源⽂件,有助于开发 --><constant name="struts.i18n.reload" value="true"/><!-- ⽂件上传最⼤值 --><constant name="struts.multipart.maxSize" value="104857600"/><!-- 让struts2⽀持动态⽅法调⽤ --><constant name="struts.enable.DynamicMethodInvocation" value="true"/><!-- Action名称中是否还是⽤斜线 --><constant name="struts.enable.SlashesInActionNames" value="false"/><!-- 允许标签中使⽤表达式语法 --><constant name="struts.tag.altSyntax" value="true"/><!-- 对于WebLogic,Orion,OC4J此属性应该设置成true --><constant name="struts.dispatcher.parametersWorkaround" value="false"/><package name="basePackage" extends="struts-default"></package></struts><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "/dtds/struts-2.0.dtd" ><struts><!-- include节点是struts2中组件化的⽅式可以将每个功能模块独⽴到⼀个xml配置⽂件中然后⽤include节点引⽤ --><include file="struts-default.xml"></include><!-- package提供了将多个Action组织为⼀个模块的⽅式package的名字必须是唯⼀的 package可以扩展当⼀个package扩展⾃另⼀个package时该package会在本⾝配置的基础上加⼊扩展的package的配置⽗package必须在⼦package前配置name:package名称extends:继承的⽗package名称abstract:设置package的属性为抽象的抽象的package不能定义action 值true:falsenamespace:定义package命名空间该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为http://localhost:8080/struts2/test/XX.action --><package name="com.kay.struts2" extends="struts-default" namespace="/test"><interceptors><!-- 定义拦截器name:拦截器名称class:拦截器类路径--><interceptor name="timer" class="com.kay.timer"></interceptor><interceptor name="logger" class="com.kay.logger"></interceptor><!-- 定义拦截器栈 --><interceptor-stack name="mystack"><interceptor-ref name="timer"></interceptor-ref><interceptor-ref name="logger"></interceptor-ref></interceptor-stack></interceptors><!-- 定义默认的拦截器每个Action都会⾃动引⽤如果Action中引⽤了其它的拦截器默认的拦截器将⽆效 --><default-interceptor-ref name="mystack"></default-interceptor-ref><!-- 全局results配置 --><global-results><result name="input">/error.jsp</result></global-results><!-- Action配置⼀个Action可以被多次映射(只要action配置中的name不同)name:action名称class: 对应的类的路径method: 调⽤Action中的⽅法名--><action name="hello" class="com.kay.struts2.Action.LoginAction"><!-- 引⽤拦截器name:拦截器名称或拦截器栈名称--><interceptor-ref name="timer"></interceptor-ref><!-- 节点配置name : result名称和Action中返回的值相同type : result类型不写则选⽤superpackage的type struts-default.xml中的默认为dispatcher--><result name="success" type="dispatcher">/talk.jsp</result><!-- 参数设置name:对应Action中的get/set⽅法--><param name="url"></param></action></package></struts>⼀个Action内包含多个请求处理⽅法的处理Struts1提供了DispatchAction,从⽽允许⼀个Action内包含多个请求处理⽅法。

【VIP专享】Struts2的配置文件的详细说明

【VIP专享】Struts2的配置文件的详细说明
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "/dtds/struts-2.0.dtd"> <struts> <!-- struts2 的 action 必须放在一个指定的包空间下定义 --> <package name="default" extends="struts-default"> <!-- 定义处理请求 URL 为 login.action 的 Action --> <action name="login" class="org.qiujy.web.struts.action.LoginAction"> <!-- 定义处理结果字符串和资源之间的映射关系 -->
本部分主要介绍 struts.xml 的常用配置。
1.1. 包配置:
Struts2 框架中核心组件就是 Action、拦截器等,Struts2 框架使用包来管理 Action 和拦截器等。每 个包就是多个 Action、多个拦截器、多个拦截器引用的集合。
在 struts.xml 文件中 package 元素用于定义包配置,每个 package 元素定义了一个包配置。它的常 用属性有: l name:必填属性,用来指定包的名字。 l extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的 Action 定义来指定该包的命名空间。 <!DOCTYPE struts PUBLIC
1.2. 命名空间配置:
6.培养学生观察、思考、对比及分析综合的能力。过程与方法1.通过观察蚯蚓教的学实难验点,线培形养动观物察和能环力节和动实物验的能主力要;特2征.通。过教对学观方察法到与的教现学象手分段析观与察讨法论、,实对验线法形、动分物组和讨环论节法动教特学征准的备概多括媒,体继课续件培、养活分蚯析蚓、、归硬纳纸、板综、合平的面思玻维璃能、力镊。子情、感烧态杯度、价水值教观1和.通过学理解的蛔1虫.过观适1、察于程3观阅 六蛔寄.内列察读 、虫生出蚯材 让标容生3根常蚓料 学本教活.了 据见身: 生,师的2、解 问的体巩鸟 总看活形作 用蛔 题线的固类 结雌动态业 手虫 自形练与 本雄学、三: 摸对 学动状习人 节蛔生结4、、收 一人 后物和同类 课虫活构请一蚯集 摸体 回并颜步关 重的动、学、蚓鸟 蚯的 答归色学系 点形教生生让在类 蚓危 问纳。习从 并状学理列学平的害 题线蚯四线人 归、意特出四生面体以形蚓、形类 纳大图点常、五观玻存 表及动的鸟请动文 本小引以见引、察璃现 ,预物身类 3学物明 节有言及的、导巩蚯上状 是防的体之生和历 课什根蚯环怎学固蚓和, 干感主是所列环史 学么据蚓节二样生练引牛鸟 燥染要否以举节揭 到不上适动、区回习导皮类 还的特分分蚯动晓 的同节于物让分答。学纸减 是方征节布蚓物起 一,课穴并学蚯课生上少 湿法。?广的教, 些体所居归在生蚓前回运的 润;4泛益学鸟色生纳.靠物完的问答动原 的4蛔,处目类 习和活环.近在成前题蚯的因 ?了虫以。标就 生体的节身其实端并蚓快及 触解寄上知同 物表内特动体结验和总利的慢我 摸蚯生适识人 学有容点物前构并后结用生一国 蚯蚓在于与类 的什,的端中思端线问活样的 蚓人飞技有 基么引进主的的考?形题环吗十 体生行能着 本特出要几变以动,境?大 节活的1密 方征本“特节化下物.让并为珍 近习会形理切 法。课生征有以问的小学引什稀 腹性态解的 。2课物。什游题主.结生出么鸟 面和起结蛔关观题体么戏:要利明蚯?类 处适哪构虫系察:的特的特用确蚓等 ,于些特适。蛔章形殊形征板,这资 是穴疾点于可虫我态结式。书生种料 光居病是寄的们结构,五小物典, 滑生?重生鸟内学构,学、结的型以 还活5要生类部习与.其习巩鸟结的爱 是如原活生结了功颜消固类构线鸟 粗形何因的存构腔能色化练适特形护 糙态预之结的,肠相是系习于点动鸟 ?、防一构现你动适否统。飞都物为结蛔。和状认物应与的行是。主构虫课生却为和”其结的与题、病本理不蛔扁的他构特环以生?8特乐虫形观部特8征境小理三页点观的动位点梳相组等、这;,哪物教相,理适为方引些2鸟,育同师.知应单面导鸟掌类结了;?生识的位学你握日构解2互.。办特生认线益特了通动手征观识形减点它过,抄;察吗动少是们理生报5蛔?物,与的解.参一了虫它和有寄主蛔与份解结们环些生要虫其。蚯构都节已生特对中爱蚓。会动经活征人培鸟与飞物灭相。类养护人吗的绝适这造兴鸟类?主或应节成趣的为要濒的课情关什特临?就危感系么征灭来害教;?;绝学,育,习使。我比学们它生可们理以更解做高养些等成什的良么两好。类卫动生物习。惯根的据重学要生意回义答;的3.情通况过,了给解出蚯课蚓课与题人。类回的答关:系线,形进动行物生和命环科节学动价环值节观动的物教一育、。根教据学蛔重虫点病1.引蛔出虫蛔适虫于这寄种生典生型活的线结形构动和物生。理二特、点设;置2.问蚯题蚓让的学生生活思习考性预和习适。于穴居生活的形态、结构、生理等方面的特征;3.线形动物和环节动物的主要特征。

Struts2配置文件详解--精品版

Struts2配置文件详解--精品版
可以在 struts2 中使用插件,Struts2 在启动的时候,会自动搜索 classpath 中的 jar 包中的 struts-plugin.xml 文件来加载插件。关于插件的应用,将会在后面讲到。
7. struts.xml
struts.xml 文件中包含的是我们开发的 Action 的配置。如前面登录例子中的配置:
4. struts.properties 文件
这个文件提供了一种更改框架默认行为方式的机制。在一般情况下,如果不是打算让 调试更加方便的话,我们没有必要更改这个文件。哪么这些默认的属性在哪里存放呢? 在项目的 src 目录中可以自己编写一个名称为 struts.properties 文件, 编译以后就放 到了/WEB-INF/classes 中,Struts2 框架在启动的时候,会自动读取这个文件,但是在读 取这个文件之前,会先到 struts2-core-xxx.jar 包中加载名为 default.properties 文件, 这个文件中定义了默认的配置,所以我们可以在 strtus.properties 中定义一些配置覆盖 default.properties 中的配置,如果没有 struts.properties 文件,则采用默认配置。 打开 default.properties 文件我们会看到如下部分类容:
/
Copyright©2010 吴青版权所有
吴老师教学讲义
4
打开该文件, 可以看到一些全局的配置选项, 在这些选项中, 我们发现了有一些这样的配置, 其中 struts.action.extension 配置的就是 Struts 默认的请求后缀名。 关于更多的配置的含义, 后面用到了再讲解,现在暂时不必理会这些配置的含义.
### Used by the DefaultActionMapper ### You may provide a comma separated list, e.g. struts.action.extension=action,jnlp,do ### The blank extension allows you to match directory listings as well as pure action names ### without interfering with static resources. struts.action.extension=action,, ### This can be used to set your default locale and encoding scheme # struts.locale=en_US struts.i18n.encoding=UTF-8

struts2配置文件详解

struts2配置文件详解
"/dtds/struts-2.0.dtd">
<struts>
<!-- 指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 标准的UI主题,默认的UI主题为xhtml,可以为simple,xhtml或ajax -->
<cosntant name="struts.ui.theme" value="xhtml" />
<!-- spring 托管 -->
<constant name="struts.objectFactory" value="spring" />
<!--
指定加载struts2配置文件管理器,默认为org.apache.struts2.config.DefaultConfiguration
<!-- 设置默认的locale和字符编码 -->
<constant name="struts.locale" value="zh_CN" />
<constant name="struts.i18n.encoding" value="GBK" />
<!-- 该属性指定Struts 2文件上传中整个请求内容允许的最大字节数 -->

struts2通配符的使用详解(5篇)

struts2通配符的使用详解(5篇)

struts2通配符的使用详解(5篇)第一篇:struts2通配符的使用详解struts2的配置文件是 struts.xml..在这个配置文件里面可以使用通配符..其中的好处就是,大大减少了配置文件的内容..当然,相应付出的代价是可读性..使用通配符的原则是约定高于配置.在项目中,我们有很多的命名规则是约定的...我们使用通配符那就必须有一个统一的约定.否则通配符将无法成立看下面的例子.(1)先看我们的action配置/user_{1}.jsp 带红字的解释下,第一个带“*” 表示的是后面匹配任意字符...这个很容易理解{1}表示的是第一个“*”的内容...注意,这里的大括号,比如,如果是user_add.那么{1}就是表示add..当然,这里只有一个“*”.你可以有两个,甚至三个四个..比如这样写*_* 这样就是两个“*”.那么我们也可以用{1},{2}来分别的表示他们.(2)对应的action 内容package com.test.action;importcom.opensymphony.xwork2.ActionSupport;@SuppressWarnings (“serial”)public class UserAction extends ActionSupport { public String add(){ return SUCCESS;} public String delete(){ return SUCCESS;} public String update(){ return SUCCESS;} public String select(){ return SUCCESS;} } 因为是举例子,所以每个方法里面都没实现内容(3)其他就是几个jsp页面.其中user_*.jsp页面没什么好说的,就是显示一句话.比如user_add.jsp就是显示“这是添加页面” 其他的类似.就是为了让我们看到已经跳转到对应的页面.index.jsp写一下<%@ page language=“java” contentType=“text/html;charset=UTF-8”pageEncoding=“UTF-8”%> <% Str ing path = request.getContextPath();String basePath = request.getScheme()+“://”+request.getServerName()+“:”+request.getServerPort()+path+“/”;%>”>添加页面删除页面修改页面查找页面第二篇:action通配符首先,看一个struts2的配置文件:Java代码1.2.3./Student{1}_success.jsp4.5.这里,“{1}”表示第1个*,例如,当请求以下路径时:引用*为add,因此method=“add”,返回的页面为/Studentadd_success.jsp 即实际调用的是StudentAction中的add 方法。

2.Struts2配置文件

2.Struts2配置文件

2.Struts2配置⽂件1.配置⽂件的加载顺序0. 需要掌握* 加载了哪些个配置⽂件(重点的)* 配置⽂件的名称是什么* 配置⽂件的位置* 配置⽂件的作⽤1. Struts2框架的核⼼是StrutsPrepareAndExecuteFilter过滤器,该过滤器有两个功能* Prepare -- 预处理,加载核⼼的配置⽂件* Execute -- 执⾏,让部分拦截器执⾏2. StrutsPrepareAndExecuteFilter过滤器会加载哪些配置⽂件呢?* 通过源代码可以看到具体加载的配置⽂件和加载配置⽂件的顺序* init_DefaultProperties(); -- 加载org/apache/struts2/default.properties* init_TraditionalXmlConfigurations(); -- 加载struts-default.xml,struts-plugin.xml,struts.xml* init_LegacyStrutsProperties(); -- 加载⾃定义的struts.properties.* init_CustomConfigurationProviders(); -- 加载⽤户⾃定义配置提供者* init_FilterInitParameters() ; -- 加载web.xml3. 重点了解的配置⽂件* default.properties -- 在org/apache/struts2/⽬录下,代表的是配置的是Struts2的常量的值* struts-default.xml -- 在Struts2的核⼼包下,代表的是Struts2核⼼功能的配置(Bean、拦截器、结果类型等)* struts.xml -- 重点中的重点配置,代表WEB应⽤的默认配置,在⼯作中,基本就配置它就可以了!!(可以配置常量)* web.xml -- 配置前端控制器(可以配置常量)* 注意:* 前3个配置⽂件是struts2框架的默认配置⽂件,基本不⽤修改。

struts2注解总结----@Action和@Result

struts2注解总结----@Action和@Result

struts2注解总结----@Action和@Result除了使⽤配置⽂件配置之外,还能够使⽤注解来配置以下是⼀些经常使⽤的注解介绍:@Action/@Actions:@Action指定⼀个类为action,相应配置⽂件⾥的<action>....</action>标签,当中能够配置例如以下属性1. results:配置返回的结果集属性,相当于struts2中的<result>列表,能够在{}中配置属性,详细例如以下2. value:配置action的名字,相当于<action>中的name属性3. interceptorRefs:配置拦截器@Action能够定义在类上,也能够定义在⽅法上例如以下(@Result的作⽤后⾯讲,也能够和后⾯的配合着看)@Action(value = "testAction",results = {@Result(name="success",location="/success.jsp")})public class testAction extends ActionSupport {@Overridepublic String execute() throws Exception {return SUCCESS;}}这就相当于例如以下的xml配置<action name="testAction" class="struts2.action.testAction"><result name="success">/success.jsp</result></action>在xml配置中假设name不写,那么默认就是success,在注解中也是,假设results中的name不写。

java-struts2基本配置使用手册

java-struts2基本配置使用手册

为Struts 2.0做好准备Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到用广泛的应用。

作为最成功的Web框架,Struts自然拥有众多的优点:∙MVC 2模型的使用∙功能齐全的标志库(Tag Library)∙开放源代码但是,所谓“金无赤金,人无完人”,Struts自身也有不少的缺点:∙需要编写的代码过多,容易引起“类爆炸”∙单元测试困难这些缺点随着Web的发展越来越明显。

这就促生了Struts 2.0,它的诞生能很好的解决上述问题。

好啦,废话就不多说了,现在就让我们感受一下的Struts 2.0的魅力吧。

1.搭建开发和运行环境1.到Apache下载Struts2.0包2.打开Eclipse3.2新建Web工程点击菜单File\New\Project,出现如图1所示对话框图1 新建工程对话框选择Web\Dynamic Web Project,点击“Next”,出现图2对话框在“Project Nam e”中键入Struts2_HelloWorld,点击“New”,出现以下对话框选择“Apache\Apache Tom at v5.5”,点击“Next”,出现以下对话框图4新建服务器运行时对话框点击“Finish”,关闭对话框。

3.将Struts 2.0 lib下的jar文件加到工程的构建路径(build path)图5 Struts 2.0的lib目录按ctr+a全选,复制,再转到Eclipse窗口,在“Project Explorer”子窗口中选中Struts2_HelloWorld\WebContent\WEB-INF\lib,然后粘贴。

经过Eclipse自动刷新“Project Explorer”子窗口,刚才所粘贴的jar文件应该会出现在Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下,如图6所示:图6 Project Explorer子窗口4.打开web.xml文件,将其修改为以下代码:<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystem s, Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"><web-app><display-nam e>Struts 2.0 Hello World</display-nam e><filter><filter-name>struts2</filter-nam e><filter-class>org.a pache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-m apping><filter-name>struts2</filter-nam e><url-pattern>/*</url-pattern></filter-m apping><welcom e-file-list><welcom e-file>index.ht ml</welcom e-file></welcom e-file-list></web-app>5.新建struts.xml文件右键点击,Struts2_HelloWorld\Java Resources: src,出现如图7所示菜单图7 新建Other菜单点击“Other”,出现新建对话框,如图8所示图8 新建对话框点击“Next”,出现新建文件对话框,如图9所示图9 新建文件对话框在“File nam e”中键入sturts.xml,点击“Finish”,然后将struts.xml的内容修改为:<!DOCTYPE struts PUBLICn 2.0//EN""/dtds/struts-2.0.dtd"><struts><include file="struts-default.xml"/>6.新建index.ht ml文件右键点击Struts2_HelloWorld\WebContent,出现如图10所示的菜单图10 新建Other菜单点击“Other”,出现新建对话框,如图11所示选择Web\HTML,点击“Next”出现如图12所示的对话框图12 新建HTML页面对话框在“File Name”中键入index.ht ml,点击“Next”,出现如图13所示的对话框图13 模板选择对话框点击“Finish”,将index.ht ml的内容修改为以下内容:/EN"><ht ml><head>UTF-8"><t itle>Hello World</title></head><body><h3>Hello World!</h3></body></ht ml>7.将应用程序打包到tom cat上右键点击Struts_HelloWorld,出现如图14所示的菜单图14 工程菜单点击“Export\WAR file”,出现如图15所示的对话框图15 输出对话框选择“Web\WAR file”,点击“Next”,出现如图16所示的对话框图16 输出路径对话框输入war文件的路径(如%tom cat%\webapps\Struts2_HelloWorld.war),点击“Finish”关闭对话框。

Stuts2的struts.properties配置文件详解

Stuts2的struts.properties配置文件详解

Struts 2框架有两个核心配置文件,struts.xml和struts.properties,其中struts.x ml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。

除此之外,Struts 2框架还包含一个struts.properties文件,该文件定义了Struts 2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。

struts.properties文件是一个标准的Properties文件,该文件包含了系列的key-value对象,每个key就是一个Struts 2属性,该key对应的value就是一个S truts 2属性值。

struts.properties文件通常放在Web应用的WEB-INF/classes路径下。

实际上,只要将该文件放在Web应用的CLASSPATH路径下,Struts 2框架就可以加载该文件。

其实,struts.properties文件的内容均可在struts.xml中以<constant na me="" value=""></constant>加下面将该文件的配置参数详细列举出来,方便大家查看;struts.configuration该属性指定加载Struts 2配置文件的配置文件管理器。

该属性的默认值是org.apache. Struts2.config.DefaultConfiguration,这是Struts 2默认的配置文件管理器。

如果需要实现自己的配置管理器,开发者则可以实现一个实现Configuration接口的类,该类可以自己加载Struts 2配置文件。

struts.locale指定Web应用的默认Locale。

struts.i18n.encoding指定Web应用的默认编码集。

该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为GBK或者GB2312。

struts2的配置文件

struts2的配置文件
t;
<!-- 定义默认的拦截器 每个Action都会自动引用,如果Action中引用了其它的拦截器,默认的拦截器将无效 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
当前路径为web-inf/classes
struts2的配置文件
类型
struts2共有4类配置文件,
struts.properties:定义框架自身的全局变量。
struts-default.xml:定义框架自身使用的action映射及result定义。
struts-plugin.xml:struts插件使用的配置文件,比如当使用struts和spring结合时就需要在web.xml中引用该配置文件。
-->
<package name="com.kay.struts2" extends="struts-default" namespace="/test">
<interceptors>
<!-- 定义拦截器-->
<interceptor name="timer" class="com.kay.timer"></interceptor>

Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射

Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
er = user;
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
@Override
或者使用myeclipse经常用的,指定basePath。
Action Method
配置:
<package name="user" extends="struts-default" namespace="/user">
<action name="userAdd" class="erAction" method="add">
public class UserAction extends ActionSupport implements ModelDriven<User> {
private User user = new User();

struts2 action method 通配符 父类方法

struts2 action method 通配符 父类方法

struts2 action method 通配符父类方法在Struts2中,可以使用通配符来匹配action方法。

如果一个Action类继承自另一个Action类,并且想要在子类中复用父类的方法,则可以使用通配符来匹配父类的方法。

例如,假设有一个父类Action类如下:```javapublic class BaseAction {public String execute() {// 执行一些共同的逻辑return "success";}}```然后,有一个子类Action类如下:```javapublic class ChildAction extends BaseAction {// 子类中可以复用父类的方法public String save() {// 执行一些子类特定的逻辑return "success";}}```在Struts2的配置文件中,可以使用通配符来匹配父类的execute方法:```xml<action name="childAction_*" class="com.example.ChildAction" method="{1}"><result>/result.jsp</result></action>```上述配置中,name属性使用了通配符"childAction_*",其中"_"表示匹配一个字符,{1}表示将匹配到的字符作为方法名传递给action类。

这样,当请求的URL匹配到"childAction_save"时,Struts2会调用ChildAction类的execute方法,从而复用父类的execute 方法,最后返回"success"结果。

Struts2的通配符配置方式

Struts2的通配符配置方式

Struts2的通配符配置⽅式Struts2的Action类很有意思,你可以使⽤3种⽅式来实现具体的Action类:1. 让你的Action类继承⾃ActionSupport类(项⽬中最常⽤这种⽅式,因为ActionSupport类中定义了很多帮助⽅法)2. 让你的Action类实现Action接⼝3. 使⽤POJO的⽅式来实现,只要Action类中有⼀个返回值为String的execute⽅法就好了(这种⽅式使Action类最容易被测试)以上三种Action的实现⽅式都可以被struts2框架⾃动识别,如果你在struts.xml⾥⾯配置了⼀个action块但是没有配置action类的路径,这样框架默认使⽤ActionSupport来处理请求。

但是在实际使⽤struts2的过程中我发现了⼀个问题,⼀个Action只有⼀个execute⽅法来处理⼀类请求,如果我开发的某块功能有100个不同的请求那我岂不是要写100个Action类,每个类实现⼀个execute⽅法,这样虽然满⾜了⼀个类⼀个责任的设计原则,但是会不会造成“类爆炸”?后来看了struts2的⽂档才知道,其实我们可以使⽤struts2灵活的通配符配置来达到减少action类的⽬的:先来看看⼀个简单的时序图请求从这个页⾯发起,只是简单的两个链接<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><a href="infoadd">ADD INFO</a><br><a href="infodel">DEL INFO</a><br></body></html>请求的控制转发是在struts.xml⾥⾯配置的<struts><constant name="struts.enable.DynamicMethodInvocation" value="true"/><package name="mypack" extends="struts-default"><action name="info*" class="com.stone.struts2.action.MyFirstAction" method="{1}"><result>/{1}info.jsp</result><allowed-methods>add,del</allowed-methods></action></package></struts>上⾯这个XML的配置内容有⼏点需要注意:1. 我开启了struts2的RMI,apache struts基于安全性考虑,RMI默认是关闭的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts2配置文件中使用通配符收藏
形式一:调用相同Action中的不同方法
<action name="*Action" class="Jcuckoo.LoginRegistAction" method="{1}">
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
其中表达式{1}的值name属性值中第一个*的值。

如果用户请求的URL为loginAction.action,则调用Jcuckoo.LoginRegistAction中的login方法;
如果用户请求的URL为registerAction.action,则调用Jcuckoo.LoginRegistAction中的register方法;形式二:通过匹配,调用不同的Action的execute方法
<action name="*Action" class="Jcuckoo.{1}Action">
<result name="input">/login.jsp</result>
<result name="error">/error.jsp</result>
<result name="success">/welcome.jsp</result>
</action>
上面没有出现method属性,故默认调用对应的execute方法
如果用户请求的URL为LoginAction.action,则调用Jcuckoo.LoginAction中的execute方法;
如果用户请求的URL为RegisterAction.action,则调用Jcuckoo.RegisterAction中的execute方法;
形式三:动态结果
<action name="crud_*" class="Jcuckoo.CrudAction" method="{1}">
<result name="input">/input.jsp</result>
<result>/{1}.jsp</result>
</action>
当处理结果是input时,会转到/input.jsp页面
当处理结果是success时,
如果crud_create.action,则会执行Jcuckoo.CrudAction中的create方法,并且跳转到/create.jsp;
如果crud_delete.action,则会执行Jcuckoo.CrudAction中的delete方法,并且跳转到/delete.jsp;。

相关文档
最新文档