《研磨struts2》 第二章 Struts2的HelloWorld 之从Servlet+JSP+JavaBean实现MVC开始 3
2.5 开发中的一些小窍门
2.5.1 概述
通过以上内容的学习,应该基本了解了Struts2的开发流程,但是,有一些细节功能你并没有看到。比如,在struts.xml中,需要注册Action类的全类名,这个全类名是哪里来的?是完全手写的,还是拷贝的?怎么拷贝的?
大家都知道,好的操作方式不容易出错,而且开发效率也更高。因此,特别准备了这一小节的知识,在这里来讲述在HelloWorld中用到的一些细节配置和操作。提示:这一节的内容并不影响编程的最后结果,只是帮助大家进行更合理的操作。让大家“看”起来更像个高手。
2.5.2 使用dtd来获得xml帮助
在前面把struts2-blank-2.1.8.1.war中的struts.xml拷贝到工程中的src过后,编辑struts.xml跟在记事本中一样,没有任何帮助,完全需要手工去写,元素有哪些子元素,元素有哪些属性全靠记忆,这是很糟糕的,如何才能让Eclipse为我们在配置这个xml的时候提供代码提示和相应的帮助呢?
先看看struts.xml的DOCTYPE引用,出现在根元素<struts>之前。
java代码:
查看复制到剪贴板打印
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> 这个配置中:
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"可以认为是Struts的dtd对应的id,包括组织名、项目名、版本、语种。
- "http://struts.apache.org/dtds/struts-2.0.dtd"是这个dtd在网上发布的地址。
如果Eclipse当前处于网络可用的状态,则eclipse会自动到最后一个参数处下载这个dtd,存在工作空间内,这样在编写xml的时候,Eclipse会有代码提示和相应帮助。包括:
- 某个元素有哪些子元素。
- 某个元素有哪些属性。
- 如果某个属性如果其取值是有规定的枚举值,还可以把枚举选项都列出来。
比如,在给<struts>这个元素添加<package>子元素的时候,只需要打出左边的”<”,eclipse就会自动识别出,<struts>元素下面可以有<bean>、<constant>、<include>、<package>四种子元素(如下图),然后只需要选择package,就会生成对应的xml配置。
图2.22 xml文件编辑帮助—子元素
同样,在某个元素内部,多给出一个空格,或者按“Alt+?”也可以出现这个元素的所有属性,及其可选值。如下图所示: