XDoclet基本任务手册Word文档格式.docx
- 文档编号:16318843
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:19
- 大小:20.78KB
XDoclet基本任务手册Word文档格式.docx
《XDoclet基本任务手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《XDoclet基本任务手册Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
只列出lib中的文件,每一个的作用在后面慢慢描述。
build.xml
开头增加
<
pathid="
xdoclet.classpath"
>
filesetdir="
lib"
includename="
*.jar"
/>
/fileset>
pathelementlocation="
classes"
/path>
*********************************************************************
1,最简单的todolist
每一篇讲XDoclet都送这里开始,有很多原因的。
XDoclet的灵感来自JavaDoc,JavaDoc把文档写在代码里,缓解了困扰编程领域多年的文档与程序同步问题。
这里有个很有趣的事,就是UNIX业界的人们传递下来这样一个传统,就是代码是最好的文档,保持文档的同步实在是费力不讨好的事,所以他们提出这样一个好主意,不过JavaDoc更聪明,文档是程序注释的一部分,而且可以提取出来。
来吧,看这个任务。
targetname="
todolist"
description="
taskdefname="
documentdoclet"
classname="
xdoclet.modules.doc.DocumentDocletTask"
classpathref="
documentdocletdestdir="
todo"
>
src"
**/*.java"
/>
infoheader="
Todolist"
projectname="
XDocletinAction"
tag="
/documentdoclet>
/target>
然后src写这么一个文件
packagexdoclet;
publicclassTodoListTest{
/**
*@todo我有许多工作要做,只是测试,忽略吧
*/
publicTodoListTest(){
}
*@todo我还不知道名字,只是测试,忽略吧
*
publicStringgetYourName(){
returnnull;
注意要按照javadoc的写法。
还要注意ant中的子任务系统,其中info就是我们定义的documentdoclet任务的子任务,我们以后会看到很多类似的情况.
然后运行anttodolist
结果就是一个结构类似javadoc,但是只包括todo标签的html文档,呵呵,可以看看项目里有哪些待办的事。
2,web.xml和taglib
作servlet映射是个讨厌的工作,当你接收别的项目的时候,这个项目的servlet怎么用可能比较麻烦,可能当时web.xml的映射找不到了,这时怎么办呢?
看这个文件
packagecom.xdocletbook.blog.servlet;
importjava.io.IOException;
importjavax.servlet.ServletConfig;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.log4j.Level;
importorg.apache.log4j.Logger;
*@web.servlet
*name="
HomePage"
*@web.servlet-init-param
LogLevel"
*value="
{LOG_LEVEL}"
*@web.servlet-mapping
*url-pattern="
/home"
*@web.security-role
*role-name="
{OwnerRole}"
*@web.security-role-ref
blogowner"
*role-link="
publicclassHomePageServlet
extendsHttpServlet{
privatestaticLoggerLOGGER=Logger.getLogger(HomePageServlet.class);
publicvoidinit()throwsServletException{
StringlogLevel=getInitParameter("
);
if(logLevel!
=null&
&
logLevel.length()>
0){
LOGGER.setLevel(Level.toLevel(logLevel));
publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throws
ServletException,IOException{
LOGGER.debug("
Displayinghomepage"
request.getRequestDispatcher("
jsp/home.jsp"
).forward(request,response);
然后配置build.xml增加如下任务
generate-web"
webdoclet"
xdoclet.modules.web.WebDocletTask"
!
--GenerateservletandJSPTag"
stuff"
-->
webdocletdestdir="
gen"
mergeDir="
merge"
deploymentdescriptordestdir="
web"
distributable="
false"
/webdoclet>
然后运行antgenerate-web
结果就是这样一个web.xml
?
xmlversion="
1.0"
encoding="
UTF-8"
DOCTYPEweb-appPUBLIC"
-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN"
"
web-app>
--
TousenonXDocletfilters,createafilters.xmlfilethat
containstheadditionalfilters(egSitemesh)andplaceitinyour
project'
smergedir.Don'
tincludefilter-mappingsinthisfile,
includetheminafilecalledfilter-mappings.xmlandputthatin
thesamedirectory.
-->
TousenonXDocletfilter-mappings,createafilter-mappings.xmlfilethat
containstheadditionalfilter-mappingsandplaceitinyour
smergedir.
TousenonXDocletlisteners,createalisteners.xmlfilethat
containstheadditionallistenersandplaceitinyour
servlet>
servlet-name>
StrutsActionServlet<
/servlet-name>
servlet-class>
org.apache.struts.action.ActionServlet<
/servlet-class>
/servlet>
HomePage<
com.xdocletbook.blog.servlet.HomePageServlet<
init-param>
param-name>
LogLevel<
/param-name>
param-value>
1<
/param-value>
/init-param>
security-role-ref>
role-name>
blogowner<
/role-name>
role-link>
aOwner<
/role-link>
/security-role-ref>
servlet-mapping>
url-pattern>
*.do<
/url-pattern>
/servlet-mapping>
/home<
Tospecifymimemappings,createafilenamedmime-mappings.xml,putitinyourproject'
smergedir.
Organizemime-mappings.xmlfollowingthisDTDslice:
ELEMENTmime-mapping(extension,mime-type)>
Tospecifyerrorpages,createafilenamederror-pages.xml,putitinyourproject'
Organizeerror-pages.xmlfollowingthisDTDslice:
ELEMENTerror-page((error-code|exception-type),location)>
Toaddtaglibsbyxml,createafilecalledtaglibs.xmlandplaceit
inyourmergedir.
Tosetupsecuritysettingsforyourwebapp,createafilenamedweb-security.xml,putitinyourproject'
Organizeweb-security.xmlfollowingthisDTDslice:
ELEMENTsecurity-constraint(display-name?
web-resource-collection+,auth-constraint?
user-data-constraint?
)>
ELEMENTweb-resource-collection(web-resource-name,description?
url-pattern*,http-method*)>
ELEMENTweb-resource-name(#PCDATA)>
ELEMENTurl-pattern(#PCDATA)>
ELEMENThttp-method(#PCDATA)>
ELEMENTuser-data-constraint(description?
transport-guarantee)>
ELEMENTtransport-guarantee(#PCDATA)>
ELEMENTlogin-config(auth-method?
realm-name?
form-login-config?
ELEMENTauth-method(#PCDATA)>
ELEMENTrealm-name(#PCDATA)>
ELEMENTform-login-config(form-login-page,form-error-page)>
ELEMENTform-login-page(#PCDATA)>
ELEMENTform-error-page(#PCDATA)>
security-role>
/security-role>
/web-app>
仔细看这个文件,你一定诧异struts的配置信息怎样得来,这是XDoclet的另一种方式,对于第三方的Servlet,我们没有办法再处理原代码,所以我们有了merge选项,看<
这一句就知道了,在merge目录里我们有两个文件:
servlets.xml
servlet-mappings.xml
还要注意的是{LOG_LEVEL},这个是说要引用ant中的变量,所以我的build.xml前面中增加了这两项
propertyname="
LOG_LEVEL"
value="
1"
OwnerRole"
aOwner"
所以,我们就可以动态的改变部署的Log级别
3,struts自动配置
Struts中有两样比较重要的类,Action和Form。
对于Action,我们需要配置Action的映射和Forward属性,对于Form我们也需要注册名字和校验参数,以下就是我们能用XDoclet做到的。
对于Action我们写这样一个Java文件
importorg.apache.struts.action.Action;
importorg.apache.struts.action.ActionForm;
importorg.apache.struts.action.ActionForward;
importorg.apache.struts.action.ActionMapping;
*SimpleclasstotestJakartaStrutsgeneration(JakartaStruts1.2beta2only).
*@struts.action
*path="
/struts/foo"
*name="
userForm"
*input="
jsp/createBlog.jsp"
*@struts.action-forward
success"
/struts/getAll.do"
*redirect="
*@struts.action-exception
*type="
com.xdocletbook.blog.exception.ApplicationException"
*key="
app.exception"
*path="
jsp/error.jsp"
*@struts.action-formname="
blog.Create"
publicfinalclassStrutsActionextendsAction
{
publicActionForwardexecute(ActionMappingmapping,ActionFormform,
HttpServletRequestrequest,HttpServletResponseresponse)
returnmapping.findForward("
关键部分就是注释部分。
看我们增加build.xml一个任务,
strutsconfigxmlversion="
1.1"
/webdocl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XDoclet 基本 任务 手册