一、部署工程web.xml里没有定义webwork,为什么页面直接可以使用webwork
<%@ taglib prefix="ww" uri="/webwork"%>
原因如下:
1 用WINRAR打开webwork.jar
2 找到META-INF文件夹
3 打开里面的taglib.tld文件
4 会看到里面有一个<uri>/webwork</uri>标签只要<%@ taglib prefix="ww" uri="/webwork"%>中的uri和<uri>/webwork</uri>的内容一致就可以不必在web.xml中定义<taglib>
二、XWork配置文件详解
XWork配置文件是以“xwork”命名的.xml文件,它必需放到类路径(classPath)的根目录, Web应用一般放在classes目录中,它需要遵守DTD的规范。这个文件定义了我们的Action,Interceptor,Result的配置和相互之间的映射。
将总的配置文件和业务上的配置文件分离,即1+N模式:
1文件:xwork.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"> <xwork> <include file="webwork-default.xml" /> <package name="default" extends="webwork-default" externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver"> <interceptors> <interceptor name="reference-resolver" class="com.opensymphony.xwork.interceptor.ExternalReferencesInterceptor"/> <interceptor-stack name="modelParamsStack"> <interceptor-ref name="model-driven"/> <interceptor-ref name="params"/> <interceptor-ref name="validationWorkflowStack"/> <interceptor-ref name="reference-resolver"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="modelParamsStack"/> </package> <include file="xwork/system.xml"/> ...... </xwork>
N文件:system.xml,......:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd"> <xwork> <package name="login" extends="default" namespace="/system"> <action name="login" class="com.linkage.manage.ui.system.LoginAction" method="login"> <external-ref name="systemBO">systemBO</external-ref> <result name="success" type="dispatcher"> <param name="location">/manage/index.jsp</param> </result> <result name="input" type="dispatcher"> <param name="location">/manage/login.jsp</param> </result> </action> <action name="logout" class="com.linkage.manage.ui.system.LogoutAction" method="logout"> <result name="success" type="dispatcher"> <param name="location">/manage/login.jsp</param> </result> </action> </package> </xwork>
三、xwork.xml文件的标签元素
xwork配置文件的所有内容,都是定义在<xwork>标签中,它的直接子标签有<package>和<include>。
URL:xxxx/system/logout.action
<package>:
属 性 | 是否必需 | 描 述 |
name | 是 | 用来标识package的名称 eg:logout |
extends | 否 | 继承它所扩展的package配置信息 |
namespace | 否 | 指定package的命名空间,默认是”” eg:/system |
abstract | 否 | 声明package是抽象的 |
四、页面iterator标签使用
如果action返回一个名为list的List(注意:该变量必须要有getXXX()方法),里面存放User类的列表,User类中有一个username的属性:
<ww:iterator =”list”>
<ww:property =”username”/>
</ww:iterator>