NetBeans Struts2 插件更新
NetBeans Struts 2 插件(http://nbstruts2support.dev.java.net)很长时间没有更新了,我对原插件进行了少量修改,并在 NetBeans 6.7 上测试通过,其中修改包括:
1.包含了最新的 Struts 2.1.6 库文件。
2.更新至最新的 web framework API。
3.重新设计了配置面板,支持更加灵活的最初配置。
4.少量针对的 Struts 2.1的代码修改。
下载:https://dl.getdropbox.com/u/201666/nbstruts2.tar.bz2
Struts 2 提供新一代的 Filter 和 Servlet 来处理请求。
如果你选择使用 Struts Servlet 来处理请求,可以选择 Reuqest processed by 为 Servlet 。
这将在 web.xml 中生成相应的 Servlet 配置,Struts 2.1 添加这么一个 Servlet ,或许是吸引那些 Struts 1 的用户。
<servlet> <servlet-name>struts2servlet</servlet-name> <servlet-class>org.apache.struts2.dispatcher.ng.servlet.StrutsServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>struts2servlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
如果你选择使用 Filter 来处理请求,当然这是 Struts 官方推荐的方式,将在 web.xml 中生成以下代码。
<filter> <filter-name>struts2</filter-name> <filter-class>apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
在 Struts 2.1 中,DispactherFilter 已经标志为过时。取而代之的是StrutsPrepareAndExecuteFilter,它还有两个变体,StrutsPrepareFilter 和 StrutsExecuteFilter ,以适应与其他 Filter 同时处理请求的情况,特别是 Sitemesh Filter,StrutsPrepareFilter 会作一些清理的动作,这在配置时已经为你考虑到了。
在Plugin Support 的标签中,提供了几种常见插件的支持。
如果你选择了使用 Filter 的方式处理客户端请求,同时使用了 Sitemesh 插件。
IDE 会为生成不同的web.xml 配置。
<filter> <filter-name>struts2prepare</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class> </filter> <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class> </filter> <filter> <filter-name>struts2execute</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2prepare</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2execute</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
同时,也会生成一份简单的 sitemesh 模板。
当你选择Development Mode ,IDE 会在 Struts 2 配置文件中添加 一些 constant,以辅助调试 Struts2程序。
<constant name="struts.devMode" value="true"/> <constant name="struts.configuration.xml.reload" value="true"/>
当你选择 Spring 支持时,会 Struts 配置文件添加一个 constant,
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory"/>
它表示使用 Spring 来创建 Struts 2 对象,包括 Action , Intecepter等。
另外,IDE 为在 web.xml 添加相应的 Spring 配置。
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
并且会在 WEBINF 下添加一个空的 spring 配置文件模板。
Convention 插件是 Struts 2.1 附带的一个全新的插件,它吸收了多个插件的优点,使得Struts 2 在利用 java 5 的 Annotation 特性上迈出了可喜的一步。
当你选择使用 Convention 插件,你有一个可选的参数,可以指定 actions的 package名,这可以在运行时缩小 action 类的扫描范围。
对于初学者,例子可能是最有效的学习途径。如果你选择了 Create Example Application 复选框,就会创建一个例子,它源于 Struts 自带的例子。
这仅仅是对 Struts 2 的小小修改,以后可以添加其它功能。比如,可视化编辑 struts.xml, 类似 jsf的 page flow功能,加强 struts 配置文件中的代码补全功能,validation 配置文件的 IDE 辅助功能等。
这可能是一个巨大的挑战,目前还不熟悉 visual library 的api。
下一篇: 101.对称二叉树