- 浏览: 224378 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
fitzsu:
关于中文占多少字节的问题应该是跟字符集相关的,跟类型无关的对吗 ...
Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用 -
showzh:
...
Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用 -
ltian:
实话实说,让我云里雾里!不知道Hibernate缓存能力和云计 ...
OO + 分布式计算 = 软件架构的方向 -
蔡华江:
5.如果数据间引用不存在环路,还可以用递归查询来完成如果出现环 ...
一道数据库开发面试题 -
zydar:
自己不改~
springside3版本qWikiOffice
首先,从官网下载的springSide3并不具备我所需要的jar包,几个列子和我的编写习惯有很大冲突。
仔细观察目录结构发现无法像struts2.0一样,把列子改一下就可以架设成功了。
没办法,下载包用处不是很大,还是看文档把——http://wiki.springside.org.cn/display/springside3/Home。
在文档中,首先看到了“快速开发指南”,进去看看。
一键式安装,唉,没兴趣,看看别的。
还是看看“完全技术参考手册”吧,进去后看到。
1. 总述
2. 持久化
2. Web
3 企业服务
4.常见事项
5 开发过程
不用说先看看前四项把,只是看看而已。
好了,5分钟到了 看完了把。开始实践把。
开始看第五项“开发实践指南 ”,
重点在这里:
1. SpringSide风格项目
进去后:
一、原理
SpringSide使用maven的archetype插件 进行项目生成,新版的archetype2.0插件比以往有了大幅提升。
SpringSide3.0在archtypes目录里存放使用Velocity语法的项目模板。
新生成的项目中将包含保证能跑起来的项目骨架、配置文件与示例代码。
二、预要求
- 设置环境变量JAVA_HOME指向JDK5.0安装目录。
- 下载Maven2.0.9 (all in one版已自带),并在环境变量PATH中添加 maven下载目录/bin。
- 初始化SpringSide,双击bin/install.bat安装springside-core.jar 和两个archetype项目。
三、步骤
- 双击bin/new-project.bat,按提示输入参数。
- 在tools/generator/generated-project目录下将生成新项目。
- 进行必要的配置,如修改数据源,参考Hibernate 。
- 将项目加入版本管理系统向团队分发项目。
如果不打算在团队中使用maven,使用copy-jar.bat命令初始化依赖的jar到/webapp/WEB-INF/lib中,并将这些jar加入版本管理系统。
五、生成结果
- maven的pom.xml 及maven格式的目录结构。
- Eclipse 3.4.1 for JavaEE 项目文件,含符合maven格式的目录设置,UTF-8及JDK1.5设置等。
- 配置文件范例
- 源代码范例
SpringSide使用maven的archetype插件 进行项目生成的,不过我可不喜欢用maven 开发项目,没办法先生成个例子项目把(Struts真好,复制,粘贴,项目就是我的了 哈哈)。
按照步骤三的方法,经过漫长的等待,终于生成了一个例子项目。
导入到eclipse,晕死 目录还真乱,我要改造他,当然也可以不改造,我只是想让他看起来更舒服。
刚生成时的目录结构:
改造后的目录结构。
好了,顺眼了,看看他都有什么东西吧。
1.user增删改差示例。
2.权限的示例。
先不管这些,先看看配置文件:
1.applicationContext.xml
- <? xml version = "1.0" encoding = "UTF-8" ?>
- < beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
- xmlns:jee = "http://www.springframework.org/schema/jee" xmlns:tx = "http://www.springframework.org/schema/tx"
- xmlns:context = "http://www.springframework.org/schema/context"
- xsi:schemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
- default-lazy-init = "true" >
- < description > Spring公共配置文件 </ description >
- <!-- 定义受环境影响易变的变量 -->
- < bean class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
- < property name = "systemPropertiesModeName" value = "SYSTEM_PROPERTIES_MODE_OVERRIDE" />
- < property name = "ignoreResourceNotFound" value = "true" />
- < property name = "locations" >
- < list >
- < value > classpath:application.properties </ value >
- < value > classpath:application.local.properties </ value >
- <!-- <value>file:/var/myapp/application.server.properties</value> -->
- </ list >
- </ property >
- </ bean >
- <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 -->
- < context:component-scan base-package = "cn.xxn" />
- <!-- 数据源配置,在开发测试环境直连数据库 -->
- < bean id = "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource" >
- < property name = "driverClassName" value = "org.gjt.mm.mysql.Driver" />
- < property name = "url" value = "jdbc:mysql://localhost:3306/FMS?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=UTF-8" />
- < property name = "username" value = "root" />
- < property name = "password" value = "123456" />
- </ bean >
- <!-- 数据源配置,在生产环境使用应用服务器的数据库连接池 -->
- <!--<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/ExampleDB" />-->
- <!-- Hibernate配置 -->
- < bean id = "sessionFactory" class = "org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >
- < property name = "dataSource" ref = "dataSource" />
- < property name = "namingStrategy" >
- < bean class = "org.hibernate.cfg.ImprovedNamingStrategy" />
- </ property >
- < property name = "hibernateProperties" >
- < props >
- < prop key = "hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop >
- < prop key = "hibernate.show_sql" > ${hibernate.show_sql} </ prop >
- < prop key = "hibernate.cache.provider_class" > org.hibernate.cache.EhCacheProvider
- </ prop >
- < prop key = "hibernate.cache.provider_configuration_file_resource_path" > ${hibernate.ehcache_config_file} </ prop >
- < prop key = "hibernate.hbm2ddl.auto" > update </ prop >
- </ props >
- </ property >
- < property name = "packagesToScan" value = "cn.xxn.entity.*" />
- </ bean >
- <!-- 事务管理器配置,单数据源事务 -->
- < bean id = "transactionManager" class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >
- < property name = "sessionFactory" ref = "sessionFactory" />
- </ bean >
- <!-- 事务管理器配置,多数据源JTA事务-->
- <!--
- < bean id = "transactionManager" class ="org.springframework.transaction.jta.JtaTransactionManager or
- WebLogicJtaTransactionManager" />
- -- >
- <!-- 使用annotation定义事务 -->
- < tx:annotation-driven transaction-manager = "transactionManager" />
- </ beans >
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" default-lazy-init="true"> <description>Spring公共配置文件</description> <!-- 定义受环境影响易变的变量 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> <property name="ignoreResourceNotFound" value="true" /> <property name="locations"> <list> <value>classpath:application.properties</value> <value>classpath:application.local.properties</value> <!-- <value>file:/var/myapp/application.server.properties</value> --> </list> </property> </bean> <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 --> <context:component-scan base-package="cn.xxn" /> <!-- 数据源配置,在开发测试环境直连数据库 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.gjt.mm.mysql.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/FMS?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> <!-- 数据源配置,在生产环境使用应用服务器的数据库连接池 --> <!--<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/ExampleDB" />--> <!-- Hibernate配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="namingStrategy"> <bean class="org.hibernate.cfg.ImprovedNamingStrategy" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider </prop> <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> <property name="packagesToScan" value="cn.xxn.entity.*" /> </bean> <!-- 事务管理器配置,单数据源事务 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!-- 事务管理器配置,多数据源JTA事务--> <!-- <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager or WebLogicJtaTransactionManager" /> --> <!-- 使用annotation定义事务 --> <tx:annotation-driven transaction-manager="transactionManager" /> </beans>
生成的很完美,我只需要改下数据源配置就可以了。
注意:在sessionFactory中
<property name="packagesToScan" value="cn.xxn.entity.*" />
恩,太爽了,这个目录下实体文件都会被映射,不用像以前一样添加实体了。这样一来,这个文件我们以后不用动他了。
2.struts.xml
- <? xml version = "1.0" encoding = "UTF-8" ?>
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
- "http://struts.apache.org/dtds/struts-2.1.dtd" >
- < struts >
- < constant name = "struts.convention.default.parent.package" value = "crud-default" />
- < constant name = "struts.convention.package.locators" value = "web" />
- < package name = "crud-default" extends = "convention-default" >
- <!-- 基于paramsPrepareParamsStack,增加store interceptor -->
- < interceptors >
- < interceptor-stack name = "crudStack" >
- < interceptor-ref name = "store" >
- < param name = "operationMode" > AUTOMATIC </ param >
- </ interceptor-ref >
- < interceptor-ref name = "paramsPrepareParamsStack" />
- </ interceptor-stack >
- </ interceptors >
- < default-interceptor-ref name = "crudStack" />
- </ package >
- <!--
- 使用ZeroConfig + CodeBehind插件,实现约定大于配置的零配置文件风格.
- 特殊的Result路径在Action类中使用@Result设定.
- -- >
- </ struts >
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.convention.default.parent.package" value="crud-default" /> <constant name="struts.convention.package.locators" value="web" /> <package name="crud-default" extends="convention-default"> <!-- 基于paramsPrepareParamsStack,增加store interceptor --> <interceptors> <interceptor-stack name="crudStack"> <interceptor-ref name="store"> <param name="operationMode">AUTOMATIC</param> </interceptor-ref> <interceptor-ref name="paramsPrepareParamsStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref name="crudStack" /> </package> <!-- 使用ZeroConfig + CodeBehind插件,实现约定大于配置的零配置文件风格. 特殊的Result路径在Action类中使用@Result设定. --> </struts>
这个配置也很强大,在不用对Action进行配置了。
疑问1,如何跳转。简单,例如:UserAction中有方法
public String school() throws Exception { return "school"; }
他就会跳转到user-school.jsp中。
哪么为什么会这样呢?
你会在lib中发现struts2-convention-plugin-2.1.6.jar,没错就是他干的。怎么实现的?我怎么知道。
- 从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。
- * 包命名习惯来指定Action位置
- * 命名习惯制定结果(支持JSP,FreeMarker等)路径
- * 类名到URL的约定转换
- * 包名到命名空间(namespace)的约定转换
- * 遵循SEO规范的链接地址(即:使用my-action 来替代 MyAction)
- * 基于注解的Action名
- * 基于注解的拦截机(Interceptor)
- * 基于注解的命名空间(Nameespace)
- * 基于注解的XWork包
- * 默认action以及默认的结果(比如:/products 将会尝试寻找com.example.actions.Products 或
- com.example.actions.products.Index进行处理)
- 无需配置Convention即可使用Convention,Convention的某些约束习惯可以通过配置属性来控制,
- 您也可以在类中覆写其中的方法来达到扩展目地。
从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。 * 包命名习惯来指定Action位置 * 命名习惯制定结果(支持JSP,FreeMarker等)路径 * 类名到URL的约定转换 * 包名到命名空间(namespace)的约定转换 * 遵循SEO规范的链接地址(即:使用my-action 来替代 MyAction) * 基于注解的Action名 * 基于注解的拦截机(Interceptor) * 基于注解的命名空间(Nameespace) * 基于注解的XWork包 * 默认action以及默认的结果(比如:/products 将会尝试寻找com.example.actions.Products 或 com.example.actions.products.Index进行处理) 无需配置Convention即可使用Convention,Convention的某些约束习惯可以通过配置属性来控制, 您也可以在类中覆写其中的方法来达到扩展目地。
疑问2,我要是跳转到别的ACTION去,不到页面怎么办。
嘻嘻,当然可以,不过这些东西不会让你去改变配置文件的。
你可以写在这里:
- @Results ({
- @Result (name = CRUDActionSupport.RELOAD, location = "user.action?page.pageParam=${page.pageParam}" , type = "redirect" ) ,
- })
- public class UserAction extends CRUDActionSupport<User> {
@Results({ @Result(name = CRUDActionSupport.RELOAD, location = "user.action?page.pageParam=${page.pageParam}", type = "redirect") , }) public class UserAction extends CRUDActionSupport<User> {
不要说你不知道这是什么位置。
你可以写多个
- @Result (name = CRUDActionSupport.RELOAD1, location = "user.action?page.pageParam=${page.pageParam}" , type = "redirect" ) ,
- @Result (name = CRUDActionSupport.RELOAD2, location = "user.action?page.pageParam=${page.pageParam}" , type = "redirect" ) ,
@Result(name = CRUDActionSupport.RELOAD1, location = "user.action?page.pageParam=${page.pageParam}", type = "redirect") , @Result(name = CRUDActionSupport.RELOAD2, location = "user.action?page.pageParam=${page.pageParam}", type = "redirect") ,
其中,name:方法的返回值。 location:跳转的方法或页面。
简单把。
发表评论
-
springside3版本qWikiOffice
2009-09-02 21:01 1363终于在离开新疆前完成了初始化版本。 springside3版 ... -
qwikioffice for java
2009-08-25 10:35 1258在springside框架下开发了qwikioffice,现在 ... -
Struts2拦截器学习
2009-06-30 10:57 960一、什么是拦截器? 提到拦截器,使我不得不 想起武侠剧 ... -
Struts2中有关struts-default.xml,struts.xml,struts.properties文件详解
2009-06-30 10:54 1297学习Struts2也有一段时间 ... -
springside3框架再度更新
2009-06-30 10:26 1026springside3框架再度更新在度更新,虽然没有用于实践中 ...
相关推荐
SpringSide3框架,SpringSide3框架SpringSide3框架SpringSide3框架
SpringSide3是一个基于Spring框架的开发工具,旨在简化Java企业级应用的开发流程。这个框架提供了项目生成器,使用Maven的archetype插件来创建符合特定规范的项目结构。SpringSide3.0使用Velocity语法的项目模板,...
SpringSide安全框架是一个基于Spring Boot和Spring Security的实践示例,旨在帮助开发者更好地理解和应用安全控制在实际项目中。这个demo实例提供了丰富的功能,涵盖了身份验证、授权、密码加密、会话管理等多个方面...
《SpringSide框架详解:整合Spring、Hibernate与Struts2的高效解决方案》 SpringSide框架,作为一款基于Java的开源企业级应用开发框架,是开发者们为了简化开发流程、提高开发效率而精心设计的。它巧妙地融合了...
SpringSide使用maven的archetype插件 进行项目生成,新版的archetype2.0插件比以往有了大幅提升。 SpringSide3.0在archtypes目录里存放使用Velocity语法的项目模板。
SpringSide3不仅包含了Spring框架的核心概念,还涵盖了Spring在实际开发中的各种应用场景,帮助开发者深入理解并熟练运用Spring进行软件开发。 一、Spring框架概述 Spring是一个开源的企业级应用框架,它以依赖注入...
springside3是一个基于Spring框架的轻量级Java开发工具集,它旨在简化企业级应用的开发过程,提供了一套完整的构建工具、最佳实践和代码示例。在本文中,我们将深入探讨springside3的核心特性、源码结构以及如何利用...
在本次讨论中,我们将深入探讨springside3-core-3.3.4.jar这一核心组件,它是SpringSide 3项目的基石,包含了项目的核心功能和模块。 1. **SpringSide 3概述**: SpringSide 3 是由中国的Java社区开发的一个开源...
SpringSide3-core-3.3.4是SpringSide项目的一个重要版本,它是一个基于Java的轻量级开发框架,旨在简化Spring的使用,提高开发效率。这个压缩包包含了两个关键文件:springside3-core-3.3.4.jar和springside3-...
总的来说,Springside3相比于传统的SSH框架,在设计上更加强调了代码的简洁性和可维护性。它通过利用JPA注解、Spring Data JPA等技术来减少XML配置的使用,使得开发人员可以更加专注于业务逻辑本身,而不是被繁琐的...
SpringSide 是一个开源的 Java 开发框架,其版本3(SpringSide3)是基于 Spring Framework 的企业级应用开发平台,它旨在简化 Spring 的使用,提供清晰的实践指导,使得开发者能够更高效地构建高质量的企业级应用。...
springside3-core-3.2.2
springside3-core-3.0.4是一款基于Spring框架的轻量级Java开发工具包,它旨在简化企业级应用的开发过程,提供了一系列实用的工具类、配置模块和示例代码。这个源码包对于学习和理解Spring框架的高级特性和最佳实践...
springside3-extension-3.3.4.jar
springside3-core-3.3.4.jar
springside3-core-3.3.4.jar