`
rethink
  • 浏览: 16367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

学习springside3(一)

阅读更多

根据官网的快速开始指南SpringSide 复活 两篇文章,简单了解ss3的大致框架,并成功建立基于ss3风格的项目。

但其中也遇到几个小问题,首先就是Maven,由于以前安装过可能有些配置被改变了导致无法正常执行quickstart-all-in- one.bat。后来直接指定ss3中的maven目录就可以了,怀疑是maven\conf\settings.xml问题。另外一个问题就是在建立自 己的项目后,执行copy-jar.bat总是不成功(有功夫要好好研究一下maven),最后只好直接把examples\mini-web\lib和 examples\mini-web\webapp\WEB-INF\lib下的jar都拷过来。

建好了项目准备自己添加点功能试试,可是没有找到能够自动生成代码的脚本,只好自己一点点添加,还好ss3在配置方面简便了许多。

1、生成实体类

@Entity
@Table(name = "dict_nation")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Nation extends IdEntity {

	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}

}

 2、生成dao、service类

@Repository
public class NationDao extends HibernateDao<Nation, Long> {

	public Nation loadByName(String name) {
		return findUniqueByProperty("name", name);
	}
}
 
@Service
@Transactional
public class NationManager extends EntityManager<Nation, Long> {

	@Autowired
	private NationDao nationDao;

	@Override
	public NationDao getEntityDao() {
		return nationDao;
	} 
	
	public Nation getNation(String name) {
		return nationDao.loadByName(name);
	}
	
}

 以上操作都不用修改配置文件,真是很方便。

3、生成web相关文件

@SuppressWarnings("serial")
@Results( { @Result(name = CRUDActionSupport.RELOAD, location = "nation.action", type = "redirect") })
public class NationAction extends CRUDActionSupport<Nation> {

	@Autowired
	private NationManager nationManager;

	// 基本属性
	private Nation entity;
	private Long id;
	private List<Nation> allNations;

	public Nation getModel() {
		return entity;
	}

	@Override
	protected void prepareModel() throws Exception {
		if (id != null) {
			entity = nationManager.get(id);
		} else {
			entity = new Nation();
		}
	}

	public void setId(Long id) {
		this.id = id;
	}

	public List<Nation> getAllNations() {
		System.out.println("test");
		return allNations;
	}

	@Override
	public String delete() throws Exception {
		try {
			nationManager.delete(id);
			addActionMessage("删除角色成功");
		} catch (ServiceException e) {
			logger.error(e.getMessage(), e);
			addActionMessage(e.getMessage());
		}
		return RELOAD;
	}

	@Override
	public String list() throws Exception {
		allNations = nationManager.getAll();
		return SUCCESS;
	}

	@Override
	public String input() throws Exception {
		System.out.println("test");
		return INPUT;
	}

	@Override
	public String save() throws Exception {
		nationManager.save(entity);
		addActionMessage("保存用户成功");
		return RELOAD;
	}

}

 修改安全文件applicationContext-security.xml

		<intercept-url pattern="/user/nation!save*" access="A_MODIFY_ROLE" />
		<intercept-url pattern="/user/nation!delete*" access="A_MODIFY_ROLE" />
		<intercept-url pattern="/user/nation*" access="A_VIEW_ROLE" />

 添加nation.jsp和nation-input.jsp文件

<body>
<div id="menu">
<h3>
	<a href="${ctx}/user/user.action">帐号列表</a>
	<a href="${ctx}/user/role.action">角色列表</a> 
	<a href="${ctx}/user/nation.action">国籍列表</a> 
	<a href="${ctx}/j_spring_security_logout">退出登录</a>
</h3>
</div>

<div id="message"><s:actionmessage theme="mytheme"/></div>

<div id="filter">你好,<%=SpringSecurityUtils.getCurrentUserName()%>.</div>

<div id="listContent">
<table>
	<tr>
		<th><b>名称</b></th>
		<th><b>操作</b></th>
	</tr>

	<s:iterator value="allNations">
		<tr>
			<td>${name}</td>
			<td>&nbsp; 
				<security:authorize ifAnyGranted="A_MODIFY_ROLE">
					<a href="nation!input.action?id=${id}">修改</a>、
					<a href="nation!delete.action?id=${id}">删除</a>
				</security:authorize>
			</td>
		</tr>
	</s:iterator>
</table>
</div>

<div id="footer">
	<security:authorize ifAnyGranted="A_MODIFY_ROLE">
		<a href="nation!input.action">增加新国籍</a>
	</security:authorize>
</div>

<div id="comment">本页面为单纯的白板,各式Table Grid组件的应用见Showcase项目(开发中).</div>
</body>
 
<body>
<h3><s:if test="id == null">创建</s:if><s:else>修改</s:else>角色</h3>
<div id="inputContent">
<form id="inputForm" action="nation!save.action" method="post">
<input type="hidden" name="id" value="${id}" />
<table>
	<tr>
		<td>国籍:</td>
		<td><input type="text" name="name" size="40" value="${name}" class="required"/></td>
	</tr>
	<tr>
		<td colspan="2">
			<input type="submit" value="提交" />&nbsp; 
			<input type="button" value="取消" onclick="history.back()"/>
		</td>
	</tr>
</table>
</form>
</div>
</body>

 完成。重新部署、运行,可以执行对国籍的增删改查。

虽然最终成功使用,但是其中遇到一个非常恼火的事情。由于定义的表名是dict_nation所以后面相关的名称都是DictNation和dictNation,结果新增的功能无法实现,怀疑是违反了某个框架的命名规范,导致无法实现,有空再深入学习ss3。

 

 

 

 

0
0
分享到:
评论
3 楼 rethink 2010-03-05  
lianzhengkun 写道
你好,我正在学习SS,可是看了你写的文章里有这个EntityManager,我怎么都找不到,麻烦告知一二。。


在springside3-core-3.1.2.jar中
2 楼 lianzhengkun 2010-03-05  
你好,我正在学习SS,可是看了你写的文章里有这个EntityManager,我怎么都找不到,麻烦告知一二。。
1 楼 doublelcf 2009-07-16  
强大。。。。下载不习了

相关推荐

    springside3文档资料收录

    SpringSide3是Java开发领域的一个重要参考资料,它是由知名开发者Calvin创建并维护的项目,旨在为Java开发者提供一套完整的Spring框架学习与实践指南。SpringSide3不仅包含了Spring框架的核心概念,还涵盖了Spring在...

    springside3源码及jar

    3. **示例代码**:jar包中的源码是学习和借鉴的好材料,开发者可以通过阅读源码来了解springside3的实现原理,以及如何在自己的项目中应用。 总结,springside3是一个优秀的Java开发工具,它不仅提供了便捷的开发...

    springside3

    在本次讨论中,我们将深入探讨springside3-core-3.3.4.jar这一核心组件,它是SpringSide 3项目的基石,包含了项目的核心功能和模块。 1. **SpringSide 3概述**: SpringSide 3 是由中国的Java社区开发的一个开源...

    springside3 完整项目实例

    SpringSide 是一个开源的 Java 开发框架,其版本3(SpringSide3)是基于 Spring Framework 的企业级应用开发平台,它旨在简化 Spring 的使用,提供清晰的实践指导,使得开发者能够更高效地构建高质量的企业级应用。...

    springside

    3. **示例代码**:SpringSide提供了丰富的示例代码,涵盖了Spring Framework的各种功能模块,如Spring MVC、Spring Data、Spring Security等,帮助开发者快速学习和掌握Spring的应用。 4. **文档**:SpringSide项目...

    Springside4 学习整理

    【Springside4 学习整理】 Springside4 是一个基于 JavaEE 平台的开源项目,它围绕 Spring Framework 构建,旨在提供实用的示例和最佳实践。Springside4 不是一个完整的框架,而是一个架构示例,帮助开发者理解和...

    springside3-core-3.0.4 源码

    springside3-core-3.0.4是一款基于Spring框架的轻量级Java开发工具包,它旨在简化企业级应用的开发过程,提供了一系列实用的工具类、配置模块和示例代码。这个源码包对于学习和理解Spring框架的高级特性和最佳实践...

    springside的一个应用实例

    SpringSide是基于Spring框架的一个轻量级、模块化、规范化的开发工具集,旨在提供一种快速、高效且易于维护的Java Web开发模式。在这个实例中,我们将深入探讨如何利用SpringSide进行实际项目开发,特别是其在构建...

    springside3.3完整版

    SpringSide 是一个开源的Java项目,旨在提供一套简洁、规范的Spring应用开发模板,帮助开发者快速上手Spring框架。本版本,即“springside3.3”,是专为MyEclipse集成环境设计的,包含了完整的功能代码,方便开发者...

    springside-3.2.2源码

    通过对 Springside 3.2.2 源码的深入学习,开发者可以掌握基于 Spring 的企业级应用开发技术,理解模块化设计、MVC 架构、依赖注入等核心概念,同时也能了解到项目管理和自动化构建的最佳实践。这将有助于提升开发者...

    springside开发全面讲解

    在学习springside的过程中,首先需要理解Spring框架的基本原理,包括依赖注入、AOP、事务管理等核心概念。然后,深入学习springside各模块的功能及使用方法,如如何配置和启动项目,如何进行模块间的通信等。最后,...

    springside-4.0.0.RC3

    SpringSide 4.0.0.RC3 是该项目的一个重要版本,它包含了对 Spring Framework 最新特性的支持,并且优化了整体架构,以满足现代企业级开发的需求。 在 SpringSide 4.0.0.RC3 中,我们首先看到的是 "quick-start.bat...

    springside3+ext源代码

    总的来说,"springside3+ext源代码"是一个集成了多种主流Java技术的实战项目,适合希望深入研究Spring生态、EXTJS以及MVC架构的开发者进行学习和借鉴。通过这个项目,开发者不仅可以提升技术水平,还能了解到实际...

    springside-3.3.4 源码(无JAR)

    总的来说,通过深入研究 springside-3.3.4 的源码,我们可以学习到 Spring 框架的最佳实践,提升我们的开发技能,同时也能了解到如何构建一个模块化、易于维护的企业级应用。这是一次宝贵的自我提升机会,无论是对于...

    springside3.3.4 实例

    3. **注释详解**:实例中的代码包含丰富的注释,这对于学习和理解 SpringSide 的工作原理至关重要。注释详细解释了每个类、方法的作用,以及它们在整个系统中的角色。 4. **Spring 框架集成**:SpringSide 基于 ...

    springside的jar包

    9. **文档齐全**:Springside有着详尽的中文文档,包括快速入门、模块介绍、使用示例等,方便开发者学习和使用。 10. **社区支持**:作为一个活跃的开源项目,Springside拥有一个热心的开发者社区,可以在遇到问题...

    maven+springside 开发入门

    3. **快速启动**:Springside提供了一套模板项目,可以快速创建一个新的Spring应用,包括Web应用、RESTful服务、数据库访问等。 4. **配置管理**:Springside使用Groovy脚本进行配置,简化XML配置,提高了可读性和可...

Global site tag (gtag.js) - Google Analytics