
简单介绍一下struts2 的一些技术小结:
1.由struts1到struts2的一个过度,可能有的人不太适应struts2的***.action,早已习惯了struts1的xxx.do。
这个问题不难解决,只要大家在自己的src下面新建一个struts.properties文件,然后在里面写下如下代码:
struts.action.extension=do这样就ok了,当然这个地方值do也可以改成你喜欢的任何一个值。
2.解决页面重复提交的问题,同样我们涉及到的也是在struts.properties文件,只要我们在这个文件里面写上:
struts.serve.static.browserCache=false解决这个问题这一句一定要写,因为它的默认值是true。
3.struts2中,请求action方法的动态调用,下面我们都以.do的请求为例:
a)struts.xml的设置如下:
<action name="dynamic" class="actions.DynamicMethodAction">
<result name="success">/dynamic.html</result>
</action>而在页面里面我们设置成:
<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的内容如下:
<action name="dynamic1" method="delete" class="actions.DynamicMethodAction">
<result name="success">/dynamic.html</result>
</action>页面里面我们可以直接写:
<a href="dynamic1.do">请求方法</a>则会在我们请求dynamic1.do的时候调用此对应action的delete方法。
注: 写道
这种方法要注意的是,我们动态调用的方法是在struts.xml文件里面设置的。在action的属性中增加了method,他的值为我们动态调用的方法名字。
3)struts.xml的内容设置如下:
<action name="dynamic2_*" method="{1}" class="actions.DynamicMethodAction">
<result name="success">/dynamic.html</result>
</action>页面我们可以写成这样:
<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配置:
<action name="*—*" method="{2}" class="actions.{1}Action">
<result name="success">/dynamic.html</result>
</action>注: 写道
绝吧。这里面我们应该明白啥意思了,{1}代表第一个*号,{2}代表第二个*号。具体的请求就有我们在页面自己设置了,我不写了哈。绝的是我们不尽可以动态调用方法,还实现了动态调用Action。
好了,先简单介绍这几个方面吧,以后会陆续更新。