旅游管理系统:查询所有项目并显示

#项目模块编程实现(MVC)

1)编写实体类:Project (属性名最好与表中字段对应)
2)编写DAO接口:ProjectDao
3)编写DAO接口对应的Mapper:ProjectMapper.xml
4)编写Service接口及实现类:ProjectService,ProjectServiceImpl
5)编写Junit测试
6)编写Controller类:ProjectController
7)编写页面及JS代码

#项目模块中项目列表信息的实现
##1)编写实体类:Project

   class Project implements Serializable{
       private Integer id;
       .......
   }

##2)编写ProjectDao:添加查询方法

   package cn.tedu.ttms.product.dao;
   interface ProjectDao{
       List<Project> findObjects();
   }

##3)编写ProjectMapper.xml文件放在dao包内

   <mapper namespace="cn.tedu.ttms.product.dao.ProjectDao">
        <select id="findObjects" 
                    resultType="cn.tedu.ttms.product.entity.Project"
          select * from tms_projects
        </select>
   </mapper>

##4)编写ProjectService及实现类并添加findObjects方法

  interface ProjectService{
             List<Project> findObjects();
   }
   class ProjectService implements ProjectService{
           @Autowired
            private ProjectDao projectDao;
            @Override
            public List<Project> findObjects() {
			List<Project> list=projectDao.findObjects();
			return list;
            }
   }

##5)编写单元测试类TestProjectService测试业务数据

public class TestProjectService {
	ClassPathXmlApplicationContext ctx;
	@Before
	public void init(){
		ctx=new ClassPathXmlApplicationContext(
		"spring-mvc.xml","spring-mybatis.xml");
	}
	@Test
	public void testFindObjects(){
		//1.获得ProjectService对象
		ProjectService projectService=
		ctx.getBean("projectServiceImpl",
				ProjectService.class);
		//2.执行ProjectService对象的findObjects方法
		List<Project> list=
				projectService.findObjects();
		//3.验证结果是否正确
		Assert.assertNotEquals(0, list.size());
		//4.输出执行结果
		System.out.println(list);
	}
	@After
	public void destory(){
		ctx.close();
	}

##6)编写ProjectController添加相关方法

@Controller
@RequestMapping("/project/")
public class ProjectController {
 @Autowired
 private ProjectService projectService;
 @RequestMapping("listUI")
 public String listUI(){
   return "product/project_list";
 }
 @RequestMapping("doGetObjects")
 @ResponseBody
 public List<Project> doGetObjects(){
   List<Project> list=projectService.findObjects();
   return list;
 }
}

##7)编写页面对应的js代码(参考project_list.js)

$(document).ready(function(){
	doGetObjects();
})
/*获取项目信息*/
function doGetObjects(){
	var url="project/doGetObjects.do";
	//发起异步请求获取服务端数据
	$.getJSON(url,function(result){//callback method
		//console.log(result);//json对象
		//将数据显示在table的tbody位置
		setTableBodyRows(result);//map中的key对应的值
	});
}
/*将数据填充在table对象的body中*/
function setTableBodyRows(result){//扩展作业
	 debugger
	 //1.获得tbody对象
	 var tBody=$("#tbodyId");
	 tBody.empty();
	 //2.迭代数据集result
	 //for(var i=0;i<result.length;i++){}
	 for(var i in result){
	 //2.1构建一个tr对象
	 var tr=$("<tr></tr>");
	 //2.2构建每行td对象(一行有多个)
	 //var td0=$("<td></td>");
	 //....
	 //2.3在td对象内容填充具体数据
	 //td0.append(result[id].id);
	 //....
	 var tds="<td><input type='checkbox' name='checkId' value='"+result[i].id+"'></td>"+
	         "<td>"+result[i].code+"</td>"+
	         "<td>"+result[i].name+"</td>"+
	         "<td>"+result[i].beginDate+"</td>"+
	         "<td>"+result[i].endDate+"</td>"+
	         "<td>"+(result[i].valid?"有效":"无效")+"</td>"+
	         "<td><input type='button'  class='btn btn-default' value='修改'/></td>";
	 //2.4将td添加到tr对象中(一行要放多个)
	 tr.append(tds);
	 //2.5将tr追加到tbody中
	 tBody.append(tr);
	 }
}

#日期转换方法
##通过js
new Date(Long time).toLocaleDateString

##通过JsonSerialize

/**springmvc 在将日期对象转换为字符串时,
 * 一般默认会转换为长整型,假如我们需要自己
 * 定义格式,通常会写一个类继承JsonSerialize,\
 * 假如在对象中需要将日期转换为我们需要的格式
 * 可以在对应的实体对象的get方法中使用
 * @JsonSerialize(using=JsonDateTypeConvert.class)
 * */
public class JsonDateTypeConvert 
     extends JsonSerializer<Date>{
	/**
	 * @param value 是要转换的日期
	 * @param gen 为一个json对象生成器
	 * */
	@Override
	public void serialize(Date value,JsonGenerator gen, 
			SerializerProvider serializers)throws IOException, 
			JsonProcessingException {
		//定义日期字符串转换对象
		SimpleDateFormat sdf=
		new SimpleDateFormat("yyyy/MM/dd");
		//将日期转换为指定格式字符串
		String dateStr=sdf.format(value);
		//将此字符串写入到json对象中
		gen.writeString(dateStr);
	}//
}//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值