您的位置:首页 > 编程语言 > Java开发

Struts2(7):struts.xml中的<package>元素

2013-06-23 16:10 483 查看
实现了Action处理类之后,就可以在struts.xml文件中配置该Action了。配置Action就是让Struts2知道哪个Action处理哪个请求,也就是完成用户请求和Action之间的对应关系。我们可以认为,Action是Struts2的基本“程序单位”。

Struts2使用<package>来组织Action,因此将Action定义放在包定义下完成,定义Action使用<action>元素完成。

Struts2框架中核心组件就是Action和拦截器,Struts2框架使用<package>来管理Action和拦截器。每个<package>就是多个Action、多个拦截器、多个拦截器引用的集合。

定义<package>元素时可以指定如下几个属性:

<package>元素的属性

属性名说明
name必需的属性,指定该包的名字,该名字是该包被其他包引用的key
extends可选属性,指定该包继承其他包。一般选择继承框架提供的struts-default包。
namespace可选属性,定义该包的命名空间。
abstract可选属性,指定该包是否为一个抽象包。抽象包不能包含Action定义。
struts2-core-2.1.8.1.jar里已经定义了struts-default抽象包,该包下包含了大量结果类型定义,拦截器定义,拦截器引用定义等,这些定义是配置普通Action的基础,所以开发者定义的package通常应该继承struts-default包。

<package>的命名空间---namespace属性:

从前面的内容可以看出,每次定义一个package元素时,都可以指定一个namespace属性,用于指定该包对应的命名空间。

Struts2之所以提供命名空间的功能,主要是为了处理同一个Web应用中包含同名Action的情形。有了命名空间的话,同一个命名空间里不能有同名的Action,不同的命名空间里可以有同名的Action。

Struts2不支持为单独的Action设置命名空间,而是通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。如果没有为<package>指定namespace属性,则该包下的所有Action处于默认的包空间下。

当某个包指定了命名空间后,该包下所有Action处理的URL应该是命名空间+Action名。譬如:

struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>

<package name="demo" extends="struts-default" namespace="/test">
<action name="login" class="action.Login">
<result name="success" type="dispatcher">/ok.jsp</result>
<result name="login" type="redirect">/login.jsp</result>
</action>
</package>

</struts>
上面配置文件为<package>元素指定了namespace属性为“/test”,那么此时login.jsp中的<form>的action属性就不再是"login",而是"test/login":
login.jsp :

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<form action="test/login" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐