Struts2中配置默认Action
1.当访问的Action不存在时,页面会显示错误信息,可以通过配置默认Action处理用户异常的操作;
2.配置方法:
在struts.xml文件中的<package>下添加如下内容:
<default-action-ref name="index"></default-action-ref>
其中index为默认Action的name属性值;
3.配置默认Action后,相应的namespace下不存在要访问的Action时,自动跳转到默认Action处理。
实例:
web.xml:
02.
<
web-app
version
=
"2.5"
03.
xmlns
=
"http://java.sun.com/xml/ns/javaee"
04.
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
05.
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ;
07.
<
welcome-file-list
>
08.
<
welcome-file
>hello.jsp</
welcome-file
>
09.
</
welcome-file-list
>
10.
<
filter
>
11.
<
filter-name
>struts2</
filter-name
>
12.
<
filter-class
>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</
filter-class
>
13.
</
filter
>
14.
<
filter-mapping
>
15.
<
filter-name
>struts2</
filter-name
>
16.
<
url-pattern
>/*</
url-pattern
>
17.
</
filter-mapping
>
18.
</
web-app
>
struts.xml:
02.
<!DOCTYPE struts PUBLIC
03.
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
05.
06.
<
struts
>
07.
<!--
08.
<
constant
name
=
"struts.enable.DynamicMethodInvocation"
value
=
"false"
/>
09.
<
constant
name
=
"struts.devMode"
value
=
"false"
/>
10.
11.
<
include
file
=
"example.xml"
/>
12.
13.
14.
15.
<
package
name
=
"default"
namespace
=
"/"
extends
=
"struts-default"
>
16.
<
default-action-ref
name
=
"index"
/>
17.
<
action
name
=
"index"
>
18.
<
result
type
=
"redirectAction"
>
19.
<
param
name
=
"actionName"
>HelloWorld</
param
>
20.
<
param
name
=
"namespace"
>/example</
param
>
21.
</
result
>
22.
</
action
>
23.
</
package
>
24.
-->
25.
26.
<!-- Add packages here -->
27.
<
constant
name
=
"struts.devMode"
value
=
"true"
/>
28.
<
constant
name
=
"struts.i18n.encoding"
value
=
"GBK"
></
constant
>
29.
<
package
name
=
"user"
namespace
=
"/"
extends
=
"struts-default"
>
30.
<
default-action-ref
name
=
"index"
></
default-action-ref
>
31.
<
action
name
=
"index"
>
32.
<
result
>/index.jsp</
result
>
33.
</
action
>
34.
</
package
>
35.
</
struts
>
index.jsp:
02.
<%
03.
String path = request.getContextPath();
04.
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
05.
%>
06.
07.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
08.
<
html
>
09.
<
head
>
10.
<
base
href="<%=basePath%>">
11.
12.
<
title
>Index</
title
>
13.
<
meta
http-equiv
=
"pragma"
content
=
"no-cache"
>
14.
<
meta
http-equiv
=
"cache-control"
content
=
"no-cache"
>
15.
<
meta
http-equiv
=
"expires"
content
=
"0"
>
16.
<
meta
http-equiv
=
"keywords"
content
=
"keyword1,keyword2,keyword3"
>
17.
<
meta
http-equiv
=
"description"
content
=
"This is my page"
>
18.
<!--
19.
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"styles.css"
>
20.
-->
21.
</
head
>
22.
23.
<
body
>
24.
Welcome to Magci's BLOG!<
br
/>
25.
<
a
href
=
"magci/magc"
>magci/magc</
a
><
br
/>
26.
<
a
href
=
"mgc/magc/magci/123456"
>mgc/magc/magci/123456</
a
><
br
/>
27.
</
body
>
28.
</
html
>