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+?”也可以出现这个元素的所有属性,及其可选值。如下图所示:
图2.23 xml文件编辑帮助—属性
注意:要在如上图的位置按下“Alt+?”,必须有一个空格,否则不会给出提示。上图中的name属性左上角的黄色小球代表了name属性是<package>元素的必有属性,其他都是可选属性。
在实际开发中,这样配置快而且出错的几率大大减小。但是,上面只限于读者的电脑可以联网的状态。如果不能联网怎么办呢?那就需要采取以下的方式来配置。
- 首先找到struts2-core-2.1.8.1.jar,用winrar打开,在压缩包的根目录下就可以发现struts-2.0.dtd。在项目的根目录下建立一个文件夹叫dtd,把找到的struts-2.0.dtd拷贝到其中备用。
- 找到eclipse的window菜单,打开首选项,找到其中的xml配置管理。【Window】->【Preferences】->【Web and XML】->【XML Catalog】
图2.24 XML Catalog管理图
- 选择添加用户自定义项(User Specified Entries)。点击上图中的【Add】按钮,弹出以下页面。
-
图2.25 添加dtd引用
- 将dtd声明中的id拷贝到上图的Key文本框中,注意:不要两边的双引号,只需要拷贝“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”就可以,然后点击上图中Location后面的小文件夹图标,选择Workspace,然后弹出文件选择对话框。
图2.26 选择dtd文件位置
- 在上图中选择已经准备好的struts-2.0.dtd。点ok即可,然后一路OK即可。
这样,在以后编写这个xml的时候,就不需要背元素有哪些子元素,元素有哪些属性以及那些属性的可选值了,完全靠eclipse的代码提示来搞定。
不过要注意一点,不同版本的Eclipse,或是不同的Struts2的版本,上述的配置过程有可能不一样,可能导致配置过后,仍然没有代码提示,需要按照你实际使用的环境去调整,但是大多数情况下,上面的配置方式是好用的。
2.5.3 在新建菜单中添加jsp
在开发的时候,读者可能选择各种各样的透视图,这里以常见的【Java】透视图为例。
要新建一个jsp的话,发现在包上点右键,选择new,下面并没有jsp的选项。如下图:
图2.27 没配置过的透视图没有新建jsp
这样一来,要想新建jsp,只能选择【Other】,在里面找jsp。每次都去Other里面找,非常麻烦。
Eclipse的各个部分都是可以由用户自由配置的,新建菜单自然也不例外。
选择透Window菜单的客户化定制透视图。【Window】->【Customize Perspective】,会弹出以下页面。
图2.28 将jsp加入新添菜单
在这里定制新建菜单的选项,在左边的窗口内单击Web这个选项,右边的窗口就会变成如上图几项,找到其中的JSP,选中,然后点击OK。
这样一来,再在某个包上点右键,新建菜单就包含了JSP这一项了。就不用以后每次新建,都要去选择Other,然后再去找JSP了。
2.5.4 获得Action的全类名
在struts.xml中,需要配置Action的全类名来注册。那么,如何得到这个全类名呢?
相信大部分朋友都会采用拷贝的方式,先在这个类中拷贝这个类的包定义,然后再拷贝这个类的类名,拼到一起放到struts.xml中,这样做既慢,又容易出错。
可以在【Package Explorer】视图中,右击Action类,会发现【Copy Qualified Name】这一项,单击之后,会把这个类的全类名+.java拷贝到剪贴板里。如此操作上例中的Action类,会得到以下结果:cn.javass.hello.struts2impl.action.HelloWorldAction.java,这样在struts.xml中的对应位置按Ctrl+V,就可以把结果拷贝过去,然后把“.java”删掉就是这个类的全类名了。
注意:【Copy Qualified Name】这个选项在【Package Explorer】等视图中才有,在【Navigator】视图中是没有的。
这个方法并不是仅仅对Struts2有用,其余如:Servlet、Hibernate、Spring、DWR等,都可能需要在配置文件中配置某个类的全类名,都可以使用这个方法。
可能有朋友还是会嫌【Copy Qualified Name】麻烦,笔者就算一个,因为还是需要去删除“.java”,在大量配置的时候比较麻烦。因此,笔者做了一个小小的Eclipse插件,可以直接拷贝类的全类名,也可以出现在【Package Explorer】中,如下图:
图2.29 java私塾的copypath
右击对应的类,找到【java私塾】,选择【我们的copypath】,就会把选定类的全类名拷贝到剪贴板里。
在这里不去讨论eclipse插件的开发与安装,可以到Java私塾的网站http://www.javass.cn上下载copypath1_1.0.0.jar,放到自己的eclipse下对应的plugins目录下,重启eclipse即可。
2.5.5 获得jsp在web工程中的绝对路径
在配置struts.xml的时候,也经常需要使用jsp在web工程中的绝对路径,比如result的配置:“<result name="toWelcome">/s2impl/welcome.jsp</result>”。该怎么样快速得到这个页面在工程中的绝对路径呢?
可以在这个jsp文件上点击右键,选择properties,会弹出这个文件的属性页面,可以拷贝到这个jsp文件相对于web应用的根文件夹的绝对路径,如下图:
图2.30 jsp的属性页面
这样,就不必手写了,jsp的绝对位置会被拷贝到剪贴板里。
私塾在线网站原创《研磨struts2》系列
转自请注明出处:【http://sishuok.com/forum/blogPost/list/0/4014.html】
欢迎访问http://sishuok.com获取更多内容
分享到:
相关推荐
jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+servlet+javaBean实现MVC源码 jsp+...
jsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_jspmvcjsp+servlet+javaBean实现MVC_...
jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc(毕业设计+课程设计)jsp+servlet+javaBean实现MVC_jspmvc...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc [其他类别]jsp+servlet+...[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc
jsp+servlet+javaBean实现MVC jsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+servlet+javaBean实现MVCjsp+...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+javaBean实现MVC_jspmvc[其他类别]jsp+servlet+...
[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他类别]jsp+servlet+javaBean实现MVC_jspmvc.rar[其他...
在"jsp+servlet+javaBean实现MVC_jspmvc.zip"这个压缩包中,我们可以期待找到以下内容: - JSP文件:包含HTML结构和嵌入的Java代码或JSTL标签,用于展示用户界面。 - Servlet文件:实现了HTTP请求处理逻辑,通常包括...
Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP、JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此...
Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目实战:jsp+servlet+javaBean实现MVC; Java编程项目...
编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean实现MVC; 编程项目实战Java-jsp:jsp+servlet+javaBean...
(基于MVC模式下web端的开发,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP+JavaBean模式程序各个模块之间层次清晰) 仅供初学者参考,内有文档注释,部分细节不懂者,留言即可
javaWEB项目:新生管理系统(Servlet+JSP+JavaBean) javaWEB项目:新生管理系统(Servlet+JSP+JavaBean) javaWEB项目:新生管理系统(Servlet+JSP+JavaBean) javaWEB项目:新生管理系统(Servlet+JSP+JavaBean) ...
Jsp+Servlet+JavaBean 实现MVC模式的留言本 声明:本留言本所有源代码开源,使用者可以自由修改和传播,但仅限于非商业用途。 作者:梁龙 博客:http://www.lianglong.net.cn 由于这是本人学习JAVA的第一个项目,...
登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+servlet+javaBean登录和注册的jsp页面+...
在本文中,我们将深入探讨如何使用JavaEE技术栈,包括JSP、Servlet和JavaBean,来构建一个简单的在线留言板系统。这个系统的核心功能是允许用户提交留言并展示其他用户的留言。我们将从整体架构、关键组件和技术原理...
MySQL分页JSP实现Servlet+JavaBean+JSP三级架构 本文档对MySQL分页技术进行了总结,讨论了在JSP实现中使用Servlet+JavaBean+JSP三级架构的分页技术的实现方式。文章首先讨论了分页技术的重要性,并且提出了一个基本...