首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Struts2一些技术小结(一)

Struts2一些技术小结(一)

作者头像
紫风
发布2025-10-14 17:21:26
发布2025-10-14 17:21:26
860
举报

简单介绍一下struts2 的一些技术小结:

1.由struts1到struts2的一个过度,可能有的人不太适应struts2的***.action,早已习惯了struts1的xxx.do。

    这个问题不难解决,只要大家在自己的src下面新建一个struts.properties文件,然后在里面写下如下代码:

代码语言:javascript
复制
struts.action.extension=do

这样就ok了,当然这个地方值do也可以改成你喜欢的任何一个值。

2.解决页面重复提交的问题,同样我们涉及到的也是在struts.properties文件,只要我们在这个文件里面写上:

代码语言:javascript
复制
struts.serve.static.browserCache=false

解决这个问题这一句一定要写,因为它的默认值是true。

3.struts2中,请求action方法的动态调用,下面我们都以.do的请求为例:

 a)struts.xml的设置如下:

代码语言:javascript
复制
<action name="dynamic" class="actions.DynamicMethodAction">
            <result name="success">/dynamic.html</result>
</action>

 而在页面里面我们设置成:

代码语言:javascript
复制
<a href="dynamic!delete.do">请求delete方法</a><br>
<a href="dynamic!update.do">请求update方法</a><br>
<a href="dynamic!insert.do">请求insert方法</a><br>

则会在我们请求dynamic action的时候分别动态调用actions.DynamicMethodAction里面的delete方法,update方法,insert方法。

注: 写道

这种方法要注意我们用的是在action名字的后面加上了叹号,然后加的是方法的名字。

 b)struts.xml的内容如下:

代码语言:javascript
复制
<action name="dynamic1"  method="delete" class="actions.DynamicMethodAction">
	<result name="success">/dynamic.html</result>
</action>

页面里面我们可以直接写:

代码语言:javascript
复制
<a href="dynamic1.do">请求方法</a>

则会在我们请求dynamic1.do的时候调用此对应action的delete方法。

注: 写道

这种方法要注意的是,我们动态调用的方法是在struts.xml文件里面设置的。在action的属性中增加了method,他的值为我们动态调用的方法名字。

3)struts.xml的内容设置如下:

代码语言:javascript
复制
<action name="dynamic2_*"  method="{1}" class="actions.DynamicMethodAction">
	<result name="success">/dynamic.html</result>
</action>

页面我们可以写成这样:

代码语言:javascript
复制
<a href="dynamic2_delete.do">请求delete方法</a><br>
<a href="dynamic2_update.do">请求update方法</a><br>
<a href="dynamic2_insert.do">请求insert方法</a><br>

 则我们在请求dynamic2_delete.do的时候,此次调用的是actions.DynamicMethodAction的delete方法。

以此类推....。

注: 写道

这种方式强调的是在配置action名字的时候我加上了一个*号,然后我在method值的地方写的是{1},这个{1}指的是第一个*号。就相当于我在name值的地方预留了一个占位符,*的值是待定的。当我页面去调用的时候在针对*号的位置给定一个方法的名,这样就实现了方法的动态调用。

4)我们来一个更绝的,见struts.xml配置:

代码语言:javascript
复制
<action name="*—*"  method="{2}" class="actions.{1}Action">
	<result name="success">/dynamic.html</result>
</action>

注: 写道

绝吧。这里面我们应该明白啥意思了,{1}代表第一个*号,{2}代表第二个*号。具体的请求就有我们在页面自己设置了,我不写了哈。绝的是我们不尽可以动态调用方法,还实现了动态调用Action。

好了,先简单介绍这几个方面吧,以后会陆续更新。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档