`

在Nutz里我这样写,意义何在?

    博客分类:
  • Nutz
阅读更多

弱弱的问下各路大侠,如下在nutz中的一个mvc写法的意义何在?

部门信息的Bean

 

import java.util.List;

import org.nutz.dao.entity.annotation.*;

/**
 * 部门信息bean
 */
@Table("t_department")
public class Department {

	@Id
	@Column("id")
	private int id;// 机构ID

	@Column("name")
	private String name;// 机构名称

	@Column("code")
	private String code;// 机构编号

	@Column("pid")
	private int pid;// 父机构ID

	@One(field = "pid", target = Department.class)
	private Department pdepartment;// 上级机构信息

	@Column("remark")
	private String remark;// 备注

	@Column("orderid")
	private String orderid;// 排序号
	
	@Column("deleted")
	private int deleted;//是否已删除
	
	@ManyMany(from = "userid", relation = "t_role_department", target = Role.class, to = "roleid")
	private List<Role> roles;//关联的角色

	//省略get和set....
}

 

 部门信息的service接口

 

public interface DepartmentService {

	/**
	 * 已删除部门
	 */
	public List<Department> list();

	/**
	 * 查询所有部门(已删除、未删除)
	 */
	public List<Department> list(boolean haveDeleted);

	/**
	 * 分页查询接口
	 */
	public Map<String, Object> list(int page, int pagesize, String orderfield,
			String ordertype, String where, boolean haveDeleted);

	/**
	 * 新增
	 * @return 
	 */
	public Department insert(Department department);

	/**
	 * 更新
	 */
	public void update(Department department);

	/**
	 * 批量删除(ID以逗号分割)
	 */
	public void remove(String ids);

	/**
	 * 根据部门ID查询
	 */
	public Department view(Long id);

	/**
	 * 根据部门名称查询
	 */
	public Department fetchByName(String name);

	/**
	 * 清除
	 */
	public void clear(String ids);
}

  部门信息的接口实现

 

@InjectName
@IocBean(fields={"dao"})
public class DepartmentServiceImpl extends IdEntityService<Department>
		implements DepartmentService {

	/**
	 * 查询所有部门
	 * 
	 * @param haveDeleted
	 *            是否含已删除
	 * @return
	 */
	public List<Department> list(boolean haveDeleted) {

		if (haveDeleted) {
			return query(null, null);
		} else {
			return query(Cnd.where("deleted", "=", 0), null);
		}

	}

	/**
	 * 分页查询所有部门
	 * 
	 * @param page
	 *            每页数量
	 * @param pagesize
	 *            页数
	 * @param orderfield
	 *            排序字段
	 * @param ordertype
	 *            排序方式
	 * @param where
	 *            查询where条件
	 * @param haveDeleted
	 *            是否含已删除
	 * @return
	 */
	public Map<String, Object> list(int page, int pagesize, String orderfield,
			String ordertype, String where, boolean haveDeleted) {

		if (pagesize < 1) {
			pagesize = 10;
		}
		// 创建分页对象
		Pager pager = dao().createPager(page, pagesize);
		
		Map<String, Object> resultMap = new HashMap<String, Object>();
		
		if (pager != null) {
			pager.setRecordCount(dao().count(Department.class,haveDeleted?null:Cnd.where("deleted", "=", 0)));
			resultMap.put("Total", pager.getRecordCount());
		}else{
			resultMap.put("Total", 0);
		}
		resultMap.put("Rows", query(CommonWhere.getWhereCnd(where, haveDeleted), pager));

		return resultMap;

	}

	/**
	 * 查询已删除部门
	 * 
	 * @return
	 */
	public List<Department> list() {
		return query(Cnd.where("deleted", "=", 1), null);
	}

	/**
	 * 更新
	 * 
	 * @param department
	 */
	public void update(Department department) {
		dao().update(department);
	}

	/**
	 * 新增
	 * 
	 * @param department
	 */
	public Department insert(Department department) {
		return dao().insertLinks(department, "pdepartment");
	}

	/**
	 * 根据部门ID查询
	 * 
	 * @param id
	 * @return
	 */
	public Department view(Long id) {
		return dao().fetchLinks(fetch(id), "pdepartment");
	}

	/**
	 * 根据部门名称查询
	 * 
	 * @param name
	 * @return
	 */
	public Department fetchByName(String name) {
		return fetch(Cnd.where("name", "=", name));
	}

	/**
	 * 根据ID批量删除部门(逻辑删除)
	 */
	@Override
	public void remove(String ids) {
		dao().update(Department.class, Chain.make("deleted", 1),
				Cnd.where("id", "IN", ids));

	}

	/**
	 * 根据ID批量清除部门
	 */
	@Override
	public void clear(String ids) {
		dao().clear(Department.class, Cnd.where("id", "IN", ids));

	}

}
 

 

部门信息的Module,只贴一个方法看下

 

@InjectName("departmentModule")
@At("/Department")
public class DepartmentModule{

	//日志
    private static final Log log = Logs.get();
    
    //部门信息服务类
    private DepartmentService departmentService;
	
    /**
     * * 部门信息集合
     * @param page 页码
     * @param pagesize  分页数据大小
     * @param sortname 排序字段
     * @param sortorder 排序方式:asc desc
     * @param Where 查询条件 格式:
     * {"op":"and","rules":[
     * 							{"op":"like",
     * 							 "field":"text_fenleiname","value":"123","type":"string"}
     * 						]
     * }
     * @return JSON格式的数据 例如:{"Rows":[{...},{...}],"Total":10}
     */
	@At("/DepartmentList")
	@Ok("json:{ignoreNull:false}")
	public Object list(	@Param("page") int page ,
						@Param("pagesize") int pagesize,
						@Param("sortname")String sortname,
						@Param("sortorder")String sortorder,
						@Param("where")String where){
		Map<String, Object> rMap = departmentService.list(page, pagesize, sortname, sortorder, where, true);
		
		log.debug(Json.toJson(rMap));
		
		return rMap;
	}
	
	
	/**
	 * 部门列表页
	 * @param currentid 当前部门ID
	 * @param request
	 * @return
	 */
	@At("/ShowDepartmentList")
	@Ok("jsp:jsp.system.dep.deplist")
	public Object showDepartmentList(@Param("id")String currentid,HttpServletRequest request){
		
		if( Strings.isBlank(currentid) ){
			currentid = "-1";
		}
		request.setAttribute("pid", currentid);
		
		return null;
	}
	
	/**
	 * 用户组操作页
	 * @param currentid 当前部门ID
	 * @param isview 是否是查看状态
	 * @param request
	 * @return
	 */
	@At("/ShowDepartmentDetail")
	@Ok("jsp:jsp.system.dep.depdetail")
	public Object showDepartmentDetail(@Param("id")String currentid,@Param("isview")String isview,HttpServletRequest request){
		
		
		if( Strings.isBlank(currentid) ){
			currentid = "";
		}
		
		request.setAttribute("id", currentid);
		request.setAttribute("isview", isview);
		
		return null;
	}
}

 IOC的配置(mvc.js)

 

 

var ioc = {
	departmentService : {
		type : "com.ds.service.system.impl.DepartmentServiceImpl",
		fields : {
			dao : {
				refer : 'dao'
			}
		}
	},
	departmentModule : {
		type : "com.ds.module.system.DepartmentModule",
		fields : {
			departmentService : {
				refer : 'departmentService'
			}
		}
	}

}
 

 

 

分享到:
评论

相关推荐

    nutz 使用手册 nutz-1.a.33-manual.pdf

    nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册

    nutz-1.b.52.zip

    如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置一个 nutz.jar 就够了 当然你要使用连接池,数据库驱动等功能,还需要自行添置 jar 包。 -------------Nutz 为谁而设计? 如果你觉得 Hibernate 控制比较繁琐,...

    Nutz框架文档

    活 -- 各个部分可以独立使用,比如在 Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等 整 -- 它所有功能均不依赖第三方 jar 文件。 这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要...

    Nutz-1.b.38

    Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等整 -- 它所有功能均不依赖第三方 jar 文件。这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置一个 nutz.jar 就够了当然你要使用其它...

    nutz邮箱验证jar包

    用于nutz邮箱验证jar包

    nutz生成javabean工具.zip

    nutz生成javabean工具.zip

    nutz代码生成器

    可连接多种数据库根据表直接生成nutz所需的bean

    nutz_redis集成依赖包

    在做nutz redis集成的实时,由于依赖包的问题被坑了一把,为了后人不要走同样的路,把所有依赖包放在上面了。

    nutz框架使用手册.zip

    nutz框架使用手册,从零到有深入学习nutz平台开发

    nutz插件 定位页面路径

    可以快速定位路径 页面 本jar包是nutz实用插件 希望大家多多下载

    nutz的freemarker视图插件

    让nutz支持freemarker。 具体使用和在struts2中使用是一样的

    nutz-1.r.58

    nutz框架jar包

    nutz框架开发手册

    nutz框架开发手册,框架很方便使用的,和大家分享

    Nutz中select 包含 order by 的问题

    使用nutz, 直接写sql查询 select 中包含 order by 查询出错的问题修正

    nutz pdf学习文档

    活 -- 各个部分可以独立使用,比如在 Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等 整 -- 它所有功能均不依赖第三方 jar 文件。这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置...

    高效,小巧的开源JAVA WEB 开发框架-Nutz (源码,开发文档)

    不幸的是在第一版,我还是依赖了 Javassist 可以很好的和各种主流框架和类库等协同工作 你可以组合 Nutz.Dao + Spring 你可以用 Nutz.Ioc 配合 Hibernate Nutz 的任何模块都是可以单独使用的 提供一条更低的且平滑的...

    nutz搭建的MVC框架

    用开源框架nutz搭建的MVC框架,适合小型系统的开发,快捷方便!

    nutz-1.r.61-发布包

    nutz-1.r.61-发布包

    nutz应用示例

    nutz应用示例,mysql/jdk1.6 数据库文件在src/config中。

    nutz-1.r.60.jar

    nutz-1.r.60.jar

Global site tag (gtag.js) - Google Analytics