把Winlet加入项目
Java库
Winlet Java库已经发布到Maven中央仓库。使用Maven的项目可以在pom.xml文件中添加以下依赖:
<dependency> <groupId>com.aggrepoint.framework</groupId> <artifactId>winlet</artifactId> <version>0.1.6</version> </dependency>
winlet_local
Winlet框架提供了一个Javascript脚本,以及与其配套的一个CSS文件和一组图片资源文件。这些文件被打包成名为winlet_local的项目,并发布在GitHub上。
要用<div>标签嵌入Winlet应用的HTML页面需引用winlet_local项目提供的Javascript和CSS文件,以及其依赖的jQuery和Bootstrap。winlet_local的Javascript代码负责在页面显示时找到页面中调用Winlet窗口的<div>标签,与服务器发起请求获取Winlet窗口内容,并在后续过程中负责管理客户端与服务器端逻辑之间的交互。
可以使用Bower,执行以下命令获得最新版本的winlet_local文件,以及其依赖的jQuery和Bootstrap:
bower install winlet_local
或者可以选择执行以下命令从GitHub获得最新版本的winlet_local(在winlet_local\dist目录中):
git clone https://github.com/yangjm/winlet_local.git
或者可以点击以下链接下载winlet_local:
Spring Boot项目
配置说明
在Spring Boot项目中,通过Maven引入Winlet库后,无需额外配置,Winlet框架就会生效。
Winlet应用的JSP页面应放在目录/src/main/webapp/WEB-INF/views中。
项目模版
为了帮助快速建立新的Winlet Spring Boot项目,开发人员可以从GitHub下载Winlet Spring Boot快速启动模版项目,在其基础上按自己项目的需要进行修改。
你也可以在GitHub上查看源代码。
1. 本地开发环境做好准备:
- 配置好Java 8
- 开发环境中使用的测试服务器需支持Servlet 3.1和JSP 2.1
- 配置好Maven。
2. 执行以下命令将模版项目下载到本地:
git clone https://github.com/yangjm/winlet_start_spring_boot
3. 在开发环境中使用Import -> Existing Maven Project导入以下winlet_start_spring_boot/pom.xml文件
4. 把导入的winlet_start_spring_boot项目加入到开发环境中的测试服务器,启动测试服务器
5. 假设测试服务器使用端口8080,用浏览器访问http://localhost:8080/start_spring_boot/index.html,确认模版应用运行正常。
6. 可以根据项目需要修改pom.xml文件内容,例如把groupId、artifactId、name、description根据项目情况进行修改。模版应用缺省使用的context root使/start_spring_boot,可以修改pom.xml中finalName的内容来将context root更改为其他值。
使用XML配置的Spring MVC项目
配置说明
使用XML配置的Spring MVC项目通过Maven引入Winlet库后,还需要进行以下配置以使Winlet框架生效:
- 在web.xml中,以com.aggrepoint.winlet.spring.WinletContextLoaderListener替换Spring的org.springframework.web.context.ContextLoaderListener:
<listener> <listener-class>com.aggrepoint.winlet.spring.WinletContextLoaderListener</listener-class> </listener>
- 在web.xml中,以com.aggrepoint.winlet.spring.WinletDispatcherServlet替换Spring的org.springframework.web.servlet.DispatcherServlet,例如:
<servlet> <servlet-name>appServlet</servlet-name> <servlet-class>com.aggrepoint.winlet.spring.WinletDispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
- 在web层的Spring容器配置文件中(该配置文件的名称和位置由web.xml中WinletDispatcherServlet的init-param指定。在上面web.xml配置例子中,该文件的名称为servlet-context.xml),定义bean com.aggrepoint.winlet.spring.WinletRequestMappingHandlerMapping,如:
<beans:bean id="handlerMapping" class="com.aggrepoint.winlet.spring.WinletRequestMappingHandlerMapping" />
- 在web层的Spring容器配置文件中,用com.aggrepoint.winlet.spring.WinletFormattingConversionServiceFactoryBean作为conversion service,并且启用Winlet提供的argument resolver类com.aggrepoint.winlet.spring.WinletHandlerMethodArgumentResolver:
<beans:bean id="conversionService" class="com.aggrepoint.winlet.spring.WinletFormattingConversionServiceFactoryBean"> </beans:bean> <annotation-driven conversion-service="conversionService"> <argument-resolvers> <beans:bean class='com.aggrepoint.winlet.spring.WinletHandlerMethodArgumentResolver' /> </argument-resolvers> </annotation-driven>
- 建议将Winlet使用的JSP文件放置在WEB-INF/views/目录中。为此需要在web层Spring容器配置文件中加入以下配置:
<beans:bean id="jspxResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="100" p:prefix="/WEB-INF/views/" p:suffix=".jsp" />
项目模版
为了帮助快速建立使用XML配置的Winlet项目,开发人员可以从GitHub下载Winlet Spring MVC快速启动模版项目,在其基础上按自己项目的需要进行修改。
你也可以在GitHub上查看源代码。
1. 本地开发环境做好准备:
- 配置好Java 8
- 开发环境中使用的测试服务器需支持Servlet 3.1和JSP 2.1
- 配置好Maven。
2. 执行以下命令将模版项目下载到本地:
git clone https://github.com/yangjm/winlet_start_spring_mvc
3. 在开发环境中使用Import -> Existing Maven Project导入以下winlet_start_spring_mvc/pom.xml文件
4. 把导入的winlet_start_spring_mvc项目加入到开发环境中的测试服务器,启动测试服务器
5. 假设测试服务器使用端口8080,用浏览器访问http://localhost:8080/start_spring_mvc/resources/index.html,确认模版应用运行正常。
6. 可以根据项目需要修改pom.xml文件内容,例如把groupId、artifactId、name、description、finalName修改为项目相应的值。
7. 可以根据项目情况修改web.xml中的webAppRootKey值。
8. 模版的例子控制器类HelloWorld.java放在包com.aggrepoint.start中。如果修改了这个包名,需要相应修改servlet-context.xml中的context:component-scan的base-package属性。