文档章节

NOTE:Struts2

猪刚烈
 猪刚烈
发布于 2014/10/12 11:48
字数 1092
阅读 19
收藏 0
点赞 0
评论 0

2009-3-28

 

<filter>

<filter-name>struts2</filter-name> ANNOTATION 1

<filterclass>

org.apache.struts2.dispatcher.FilterDispatcher</filterclass>

<init-param> ANNOTATION 2

<param-name>actionPackages</param-name>

<param-value>manning</param-value>

</init-param>

</filter>

 

(annotation) <#1”The FilterDispatcher: Struts 2 Begins Here”>

过滤struts2截所有http求,所以struts正是通过这过滤器来完成充当controller角色的。

The actionPackages parameter is

necessary if you are going to use annotations in your application.

actionPackages参数,是非常重要的,它告程序去什地方找注解(action的)。

 

2009-3-28

 

struts2ActionData Transfer Object问题

struts1中,Action只会有一个例,因此Action是不能作DTO的,但是在struts2中,这种情况已完全不同了,次有Struts都会重新建一个新的Action例。因此struts2中的Action都有天生就可以是一个DTO

 

default namespace

Note that the default namespace is actually the empty string "".

package声明中,往往都承一个默包,个默包的namespace就是一个空串“”。

也可以看到,其一个packagenamespace,就是URL介于于servlet 上下文与一个Action名称之的部分。如:

 

 

Package namespace是很必要的机制,基本上就像是代码的包一样,用来合理地组织action用的。更为重要的是我们常常会基于package namespace来进行权限配制。

注意:packagenamespace不是jsp的组织结构!

关于package和namespace

package和namespace不一定非得是一一对应的关系,一个namespace是可以对应多个package的!

Note that you can give the same
namespace to more than one package. If you do this, the actions from the two packages
map to the same namespace. This isn’t necessarily a problem. You might choose
to separate your actions into separate packages for some functional reason that
doesn’t warrant a distinct namespace.

通常来说:namespace的组织原则是:依据action的相关性.其实默认情况下,一个action的namespace就是这个action类的包路径,这也体现了namespace的基本作用.就像我们按功能相关性来组织jsp一样,action的组织最好是用功能相关性来组织,有可能话也许会和jsp的组织结构能够对应起来.如果namespace是按功能来划分的,那么,对于其内部的action来说,如果它们需要有不同的配置,那就分成多个package,但是namespace是一样的.

 

2009-4-1

 

          关于Action的执行机理:

Struts2中一个Action的执行过程被 封闭在一个ActionInvoction中。下图是对一个Action的执行过程的详细描述。这个过程基本就是将拦截器栈中的拦截器依次读出并执行,最后执行Action。同样,在执行完毕返回的过程中也会依次调用这些拦截器。基本上这些拦截器就是负责一些横切性质的工作。也就是一些 preprocesspostprocess.

 

 

2009-4-11

 

关于Strutsspring集成的问题:

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener

</listener-class>

</listener>

At this point, you’re completely ready to start managing your objects with Spring. But,

as we indicated earlier, Spring won’t just start handling all of your objects. You must

tell Spring to intervene. To have Spring manage your objects, you need to declare

these objects as Spring beans in a Spring configuration file. By default, the Spring

container created by the ContextLoaderListener looks for metadata in an XML file at

/WEB-INF/applicationContext.xml.

 

以上是web.xml中一个listener的注册。正是这个listenerspring开始读取配件文件,并开始创建bean,而这个配件文件在哪呢?默认的位置就是/WEB-INF/applicationContext.xml

当然,我们也可以指定文件位置,方法如下:

 

<!-- Context Configuration locations for Spring XML files -->

    <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>

            classpath:/applicationContext-resources.xml

            classpath:/applicationContext-dao.xml

            classpath:/applicationContext-service.xml

            classpath*:/applicationContext.xml

            /WEB-INF/applicationContext*.xml

            /WEB-INF/xfire-servlet.xml

            /WEB-INF/security.xml

        </param-value>

    </context-param>

 

2009-5-15

 

while actions that don’t define any interceptor-refs themselves will inherit the default

interceptors, as soon as an action declares its own interceptors, it loses that automatic

default and must explicitly name the defaultStack in order to use it.

 

 

Struts2actionUrl的数据绑定。

Struts2采用了JavaBean的风格——要访问数据的话,就给字段提供一个gettersetter,要访问请求字符串和表单也是一样的道理。每一个请求字符串和表单的值都是一个简单的名/值对,所以要设定一个特定名称的值的话,就要为它提供一个setter。比如,如果一个JSP调用了/home.action?framework=struts&version=2这样一个请求,那么action就应该提供如下两个settersetFramework( String frameworkName )setVersion( int version )

© 著作权归作者所有

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
java.lang.ClassNotFoundException: org.apache.strut

This is a common error message for a new Struts2 developer. Many Struts 2 related websites have been reported this problem. Overall, when we see a ClassNotFoundException, we sho......

i33 ⋅ 2015/01/26 ⋅ 0

Struts2知识总结

Struts2的作用 struts2的功能类似于servlet,仍然是接受请求,调用DAO进行处理,返回视图.它相比于servlet的优势 请求和返回视图的映射关系统一配置在struts.xml文件中,不用再耦合到java代码中了...

苏叶晚晚 ⋅ 2014/05/14 ⋅ 3

问一下Hibernate4的问题!

Spring 3中怎么对Hibernate4的支持没有HibernateDaoSupport/HibernateTemplate . 用支持Hibernate3的支持出错了... org.springframework.orm-3.1.0.RELEASE.jarorgspringframeworkormhiberna......

PYZWORLD ⋅ 2012/10/04 ⋅ 4

urlrewriteFilter顺序问题(web.xml)

urlrewrite中,to的type为redirect就成功,但是地址仍然没有成功伪装。而type=forward就报404错误。估计是web.xml配置顺序问题。(在其他项目urlrewrite是正常的。)请问各位大师,web.xml的配...

石湖山庄 ⋅ 2013/06/08 ⋅ 0

使用shiro和ehcache整合时候,登陆出现异常,求救

项目情况struts2 然后使用shiro安全框架 shiro.ini: [main] sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher realm myRealm = com.haiersoft.shiro.realm.MyS......

猴子 ⋅ 2012/02/27 ⋅ 10

Struts2中OGNL,valueStack,stackContext的学习

[/color]学习Struts2,一直不明白表单中的值是怎么传给Action的,上网查了些资料,基本了解了!下面基本是从几个人的BOLG转载过来,以后记不清了再来看~ [color=red]先看看我做的实验jsp页面...

杨松坤 ⋅ 2012/07/19 ⋅ 0

struts2工作流程分析

1.struts2架构图 2.几个概念 2.1 actionContext: is the context in which an is executed. Each context is basically a container of objects an action needs for execution like the se......

rain ⋅ 2011/03/20 ⋅ 0

Struts2常量的配置

struts.xml配置文件最大的作用就是配置Action和请求之间的对应关系,并配置逻辑视图名和物理视图资源之间的对应关系。除此之外,struts.xml文件还有一些额外的功能,例如Bean配置、配置常量、...

摆渡者 ⋅ 2014/03/02 ⋅ 0

Struts2体系结构

.Struts2体系结构 Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务...

风一样 ⋅ 2011/08/06 ⋅ 0

SSH框架之struts2专题1:Struts2入门

1 Struts2入门 1.1 Struts2简介 Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。 1.2 Struts2下载与版本 Stru...

极客微信条 ⋅ 01/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

推荐:并发情况下:Java HashMap 形成死循环的原因

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历...

码代码的小司机 ⋅ 昨天 ⋅ 2

聊聊spring cloud gateway的RetryGatewayFilter

序 本文主要研究一下spring cloud gateway的RetryGatewayFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0.RC2-sources.jar!/org/springframework/cloud/gateway/config/G......

go4it ⋅ 昨天 ⋅ 0

创建新用户和授予MySQL中的权限教程

导读 MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据。 它有多种选项来授予特定用户在表和数据库中的细微的权限 - 本教程将简要介绍一些选项。 如何创建新用户 在MySQL...

问题终结者 ⋅ 昨天 ⋅ 0

android -------- 颜色的半透明效果配置

最近有朋友问我 Android 背景颜色的半透明效果配置,我网上看资料,总结了一下, 开发中也是常常遇到的,所以来写篇博客 常用的颜色值格式有: RGB ARGB RRGGBB AARRGGBB 这4种 透明度 透明度...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部