struts-基础内容-3-action开发,路径,常量
来源:互联网 发布:大数据的价值体现在 编辑:程序博客网 时间:2024/06/07 10:23
1.Struts2的Action开发的几种方式
方式一:继承ActionSupport(如果使用struts2进行数据校验,必须继承此类)
方式二:实现Action接口
Action中接口public interface Action { String SUCCESS = "success"; String NONE = "none"; String ERROR = "error"; String INPUT = "input"; String LOGIN = "login"; String execute() throws Exception;}
方式3:不继承任何类,不实现任何接口:数据还是一样自动的注入
2-通配符
<package name="config" namespace="/" extends="struts-default" abstract="false"> <!--使用通配符优化开发步骤--> <action name="user_*" class="com.cx.action.UserAction" method="{1}"> <result name="{1}">/{1}.jsp</result> </action></package> //1对应*的内容
3-Struts2路径匹配原则
<package name="config" namespace="/user" extends="struts-default" abstract="false"> <!--使用通配符优化开发步骤--> <action name="user_*" class="com.cx.action.UserAction" method="{1}"> <result name="{1}">/{1}.jsp</result> </action> </package>
访问路经:http:localhost:8080/struts02/user/user_login OK
访问路径:http:localhost:8080/struts02/user/a/b/user_login OK
访问路径:http:localhost:8080/struts02/a/b/user/user_login ERROR
http:localhost:8080/struts02/user/a/b/user_login
localhost:找到那一台机器
8080:找到tomcat
struts02:找到项目名称
/user/a/b:先看有没有这个名称空间,没找到,继续向下 找到就返回
/user/a :先看有没有这个名称空间,没找到,继续向下 找到就返回
/user: 先看有没有这个名称空间,没找到,继续向下 找到就返回
/:默认名称空间,没有找到,就报错
4.Struts常量
Struts中默认访问后缀
Struts1中默认后缀是.do
Struts2中默认后缀是.action
如何修改访问后缀???
找到.action出现的地方
路径
struts-core-2.3.4-1.jar/org.apache.struts/default.properties
struts.action.extension=action,,
默认访问后缀配置
### Struts default properties###(can be overridden by a struts.properties file in the root of the classpath)###### This can be used to set your default locale and encoding scheme# struts.locale=en_USstruts.i18n.encoding=UTF-8 //设置编码### if specified, the default object factory can be overridden here### Note: short-hand notation is supported in some cases, such as "spring"### Alternatively, you can provide a com.opensymphony.xwork2.ObjectFactory subclass name here# struts.objectFactory = spring### specifies the autoWiring logic when using the SpringObjectFactory.### valid values are: name, type, auto, and constructor (name is the default)struts.objectFactory.spring.autoWire = name### indicates to the struts-spring integration if Class instances should be cached### this should, until a future Spring release makes it possible, be left as true### unless you know exactly what you are doing!### valid values are: true, false (true is the default)struts.objectFactory.spring.useClassCache = true### ensures the autowire strategy is always respected.### valid values are: true, false (false is the default)struts.objectFactory.spring.autoWire.alwaysRespect = false### By default SpringObjectFactory doesn't support AOP### This flag was added just temporally to check if nothing is broken### See https://issues.apache.org/jira/browse/WW-4110struts.objectFactory.spring.enableAopSupport = false### if specified, the default object type determiner can be overridden here### Note: short-hand notation is supported in some cases, such as "tiger" or "notiger"### Alternatively, you can provide a com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation name here### Note: By default, com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer is used which handles type detection### using generics. com.opensymphony.xwork2.util.GenericsObjectTypeDeterminer was deprecated since XWork 2, it's### functions are integrated in DefaultObjectTypeDeterminer now.### To disable tiger support use the "notiger" property value here.#struts.objectTypeDeterminer = tiger#struts.objectTypeDeterminer = notiger### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data# struts.multipart.parser=cos# struts.multipart.parser=pell# struts.multipart.parser=jakarta-streamstruts.multipart.parser=jakarta# uses javax.servlet.context.tempdir by defaultstruts.multipart.saveDir=struts.multipart.maxSize=2097152
//文件上传大小限制
### Load custom property files (does not override struts.properties!)# struts.custom.properties=application,org/apache/struts2/extension/custom### How request URLs are mapped to and from actions#struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper### 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, which can be specified as an empty string### prior to a comma e.g. struts.action.extension=, or struts.action.extension=x,y,z,,struts.action.extension=action,,### Used by FilterDispatcher### If true then Struts serves static content from inside its jar.### If false then the static content must be available at <context_path>/strutsstruts.serve.static=true### Used by FilterDispatcher### This is good for development where one wants changes to the static content be### fetch on each request.### NOTE: This will only have effect if struts.serve.static=true### If true -> Struts will write out header for static contents such that they will### be cached by web browsers (using Date, Cache-Content, Pragma, Expires)### headers).### If false -> Struts will write out header for static contents such that they are### NOT to be cached by web browser (using Cache-Content, Pragma, Expires### headers)struts.serve.static.browserCache=true### Set this to false if you wish to disable implicit dynamic method invocation### via the URL request. This includes URLs like foo!bar.action, as well as params### like method:bar (but not action:foo).### An alternative to implicit dynamic method invocation is to use wildcard### mappings, such as <action name="*/*" method="{2}" class="actions.{1}">struts.enable.DynamicMethodInvocation = false### Set this to true if you wish to allow slashes in your action names. If false,### Actions names cannot have slashes, and will be accessible via any directory### prefix. This is the traditional behavior expected of WebWork applications.### Setting to true is useful when you want to use wildcards and store values### in the URL, to be extracted by wildcard patterns, such as### <action name="*/*" method="{2}" class="actions.{1}"> to match "/foo/edit" or### "/foo/save".struts.enable.SlashesInActionNames = false### Disables support for action: prefixstruts.mapper.action.prefix.enabled = false### Blocks access to actions in other namespace than current with action: prefixstruts.mapper.action.prefix.crossNamespaces = false### use alternative syntax that requires %{} in most places### to evaluate expressions for String attributes for tagsstruts.tag.altSyntax=true### when set to true, Struts will act much more friendly for developers. This### includes:### - struts.i18n.reload = true### - struts.configuration.xml.reload = true### - raising various debug or ignorable problems to errors### For example: normally a request to foo.action?someUnknownField=true should### be ignored (given that any value can come from the web and it### should not be trusted). However, during development, it may be### useful to know when these errors are happening and be told of### them right away.struts.devMode = false### when set to true, resource bundles will be reloaded on _every_ request.### this is good during development, but should never be used in production### struts.i18n.reload=false### Standard UI theme### Change this to reflect which path should be used for JSP control tag templates by defaultstruts.ui.theme=xhtmlstruts.ui.templateDir=template### Change this to use a different token to indicate template theme expansionstruts.ui.theme.expansion.token=~~~#sets the default template type. Either ftl, vm, or jspstruts.ui.templateSuffix=ftl### Configuration reloading### This will cause the configuration to reload struts.xml when it is changed### struts.configuration.xml.reload=false### Location of velocity.properties file. defaults to velocity.propertiesstruts.velocity.configfile = velocity.properties### Comma separated list of VelocityContext classnames to chain to the StrutsVelocityContextstruts.velocity.contexts =### Location of the velocity toolboxstruts.velocity.toolboxlocation=### used to build URLs, such as the UrlTagstruts.url.http.port = 80struts.url.https.port = 443### possible values are: none, get or allstruts.url.includeParams = none### Load custom default resource bundles# struts.custom.i18n.resources=testmessages,testmessages2### workaround for some app servers that don't handle HttpServletRequest.getParameterMap()### often used for WebLogic, Orion, and OC4Jstruts.dispatcher.parametersWorkaround = false### configure the Freemarker Manager class to be used### Allows user to plug-in customised Freemarker Manager if necessary### MUST extends off org.apache.struts2.views.freemarker.FreemarkerManager#struts.freemarker.manager.classname=org.apache.struts2.views.freemarker.FreemarkerManager### Enables caching of FreeMarker templates### Has the same effect as copying the templates under WEB_APP/templates### struts.freemarker.templatesCache=false### Enables caching of models on the BeanWrapperstruts.freemarker.beanwrapperCache=false### See the StrutsBeanWrapper javadocs for more informationstruts.freemarker.wrapper.altMap=true### maxStrongSize for MruCacheStorage for freemarker, when set to 0 SoftCacheStorage which performs better in heavy loaded application### check WW-3766 for more detailsstruts.freemarker.mru.max.strong.size=0### configure the XSLTResult class to use stylesheet caching.### Set to true for developers and false for production.struts.xslt.nocache=false### Whether to always select the namespace to be everything before the last slash or notstruts.mapper.alwaysSelectFullNamespace=false### Whether to allow static method access in OGNL expressions or notstruts.ognl.allowStaticMethodAccess=false### Whether to throw a RuntimeException when a property is not found### in an expression, or when the expression evaluation failsstruts.el.throwExceptionOnFailure=false### Logs as Warnings properties that are not found (very verbose)struts.ognl.logMissingProperties=false### Caches parsed OGNL expressions, but can lead to memory leaks### if the application generates a lot of different expressionsstruts.ognl.enableExpressionCache=true### Indicates if Dispatcher should handle unexpected exceptions by calling sendError()### or simply rethrow it as a ServletException to allow future processing by other frameworks like Spring Securitystruts.handle.exception=true### END SNIPPET: complete_file
<!-- 后缀一 ,后缀二 ,后缀三 -->
<constant name="struts.action.extension" value="action,cx,"></constant>
指定访问后缀为action/do/没有访问后缀都可以
动态方法调用
<!--动态方法调用-->
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
http://localhost:8080/Struts2_Data/user!register
语法
action名!要调用的方法
0 0
- struts-基础内容-3-action开发,路径,常量
- Struts2第三篇【Action开发方式、通配符、Struts常量、跳转全局视图、action节点默认配置】
- 2、struts2开发action 的三种方法以及通配符、路径匹配原则、常量
- 【struts框架】第一节Action-struts基础
- SSH框架之Struts的Action的开发、通配符、路径匹配原则(了解即可)
- struts编译Action的路径问题
- 【struts框架】第一节Action-路径问题与创建Action方法
- 5.struts.xml配置常量和Action处理流程
- Struts常量 Struts2 action 定义 配置 操作内置对象
- 第29天(就业班) Action开发、通配符、路径匹配、常量、数据处理、日期类型转换、文件上传下载
- 2.action的配置、常量配置以及路径的配置
- struts/Servlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
- ssm 之Struts 基础 (action)
- Struts基础开发
- 一、Struts 2 基础---4.Struts 2中的Action
- 一、Struts 2 基础---4.Struts 2中的Action
- Struts基础:struts-config.xml中action的scope属性
- Struts 开发简单例子[action formbean]
- mysql-(六)-实战练习
- struts基础内容-1-执行流程
- beautiful soap simple examples
- 今天遇到的bug。。。
- struts基础内容-2-配置详解
- struts-基础内容-3-action开发,路径,常量
- struts-基础内容-4-全局配置
- canvas动画之一 -- 百分比进度加载
- struts-基础内容-5-数据处理,数据回显,模型驱动
- struts-基础内容-6-数据的自动封装和类型转换
- struts-基础内容-7-文件上传
- struts-基础内容-8-文件下载
- struts-核心内容-9-拦截器
- javaweb-c3p0连接池