旅游管理系统的FAQ

#FAQ:Frequently Asked Questions

#1. 服务端返回的JSON中的日期格式如何设置?
1)JS端直接设置(new Date(长整形).toLocaleDateString())
2)编写日期转换类继承JsonSerializer重写相关方法,然后在
对应实体对象的get方法上使用@JsonSerialize注解进行
标注要使用的类型转换器.

#2. Tomcat 启动时端口号被占用了?
1)window: jdk/bin 中去执行shutdown.bat
2)linux:
ps -ef|grep tomcat
kill -9 进程号(pid)
3)修改端口号(server.xml)

#3. Spring 中是如何为使用了@Resouce或 @Autowired
等注解修饰的属性注入值的?

注解应用规则:

@Resource (默认按名字注入,没有找到名字按类型注入)
@Autowired(默认按类型注入,假如没找可能会注入失败)
@Autowired假如希望按名字注入

注解应用原理:可以通过反射为使用了此注解的属性注入相关值.

#4. Spring中@ResponseBody注解的作用

将控制层方法的返回值通过第三方API(例如Jackson)转为
Json字符串,然后通过网络传输到客户端.

具体转换过程说一说:
1)JavaBean对象:调用对象的getXXX方法获取值.
2)Map对象:调用map的get(String key)获取值.

例如:
JsonResult—>"{“state”:1,“message”:“ok”,data:{}}"

#5. 项目中JsonResult这个类是如何封装的异常信息的

1)异常发生时
2)异常处理类中 : new JsonResult(异常对象);

#6. 项目添加时,在projectDao的insertObject方法中,假如
参数使用了@Param修饰,程序在运行时会出错,为什么?

insertObject(Project entity);没有@Param注解修饰
insertObject(@Param(“ety”) Project entity);

当mapper中写与此
insertObject(@Param(“entity”) Project entity)
方法绑定的mapper文件时,它的值再获取时需要
#{ety.属性},例如#{ety.code}

#7. 在添加项目信息时,对模态框的保存按钮上绑定的click
事件为什么需要解绑?

因为可能出现数据多次重复提交问题,应该模态框隐藏时
解除事件绑定操作.

#8. MyBatis 中$和#取值时有什么不同

#{}会用?代替 会防止sql注入问题

#9. 日期转换时@DateTimeFormat和@JsonSerialize有什么不同?

@DateTimeFormat 注解应用
1)归属Spring框架
2)定义服务端能接收的日期格式(spring默认格式yyyy/MM/dd)

@JsonSerialize 注解应用.
1)归属Jackson
2)再将控制层返回的对象转换json字符串时,可以按照 @JsonSerialize
定义的日期格式进行转换(默认会转换为长整型)

#10. MyBatis 映射文件中如何在resultType属性或paramterType
属性上使用自己定义的类的别名.
1)首先在mybatis配置文件中定义别名(两种方式)
例如:

<typeAliases>
  <package name="cn.tedu.ttms.system.entity"/>
  <package name="cn.tedu.ttms.product.entity"/>
</typeAliases>
 或者
<typeAliases>
   <typeAlias type="cn.tedu.ttms.product.entity.Team" 
                      alias="team"/>
   <typeAlias type="cn.tedu.ttms.product.entity.Project"
                      alias="project"/>
</typeAliases>

2)在映射文件中使用别名
<mapper …>





#11. Dao接口中的方法参数一般会如何定义?

Project findObjectById(Integer id);

List<Project>findPageObjects(
@Param("name") String name,
@Param("valid")  Integer valid,
@Param("startIndex") Integer startIndex,
@Param("pageSize") Integer pageSize)

 假如findPageObjects方法没有使用@Param注解
 底层系统会将dao中的参数以及值存储到map
 map.put("param1",name);
 map.put("param2",valid);
 .....
 我们在mapper文件中使用值时可以#{param1};#{param2};

 假如findPageObjects方法使用了@Param注解对参数
 进行了定义,底层系统会将dao中的参数及其值按照如下
 规则存储到map.
 map.put("name",name);
 map.put("valid",valid);
 ......
我们在mapper文件中使用值时可以#{name};#{valid};

int updateObject(Project entity);

mapper中直接使用#{对象get方法去掉get后的那个单词}取值

int updateObject(@Param(“e”) Project entity);

mapper中使用#{e.对象get方法去掉get后的那个单词}取值

#12. 为什么返回JsonResult

 /* 
	     刷新整个project_list.jsp的一种写法(不推荐)
	   @RequestMapping("doValidById")
	   public String doValidById(Integer valid,
			  String ids){
		  projectService.validById(valid, ids);
	      return "redirect:listUI.do?t="+System.currentTimeMillis();
	   }
	  */
	  @RequestMapping("doGetPageObjects")
	  @ResponseBody
	  public JsonResult doGetPageObjects(
	    		  String name,
	    		  Integer valid,
	    		  Integer pageCurrent){
		  log.info("name="+name);//乱码
		  log.info("valid="+valid);
		  log.info("pageCurrent="+pageCurrent);
		  Map<String,Object> map=
		  projectService.findPageObjects(
				  name,valid,pageCurrent);
		  log.info("map="+map);
		  return new JsonResult(map);//map对象转换为json串的表示形式如下
		  /*{
		   * state:1,
		   * message:"ok"
		   * data:
		   * {
		     "list":[{id:1,name:"环球游",...},{...}] 
		     "pageObject":{pageCurrent:1,pageCount:2,...}
		     }
		     }
		   */

#13. 客户端传的Json param 如何转为对象

 /**
	   * name="东欧游"&code="..."&beginDate="..."
	   * spring 获得参数数据以后会对数据进行解析然后
	   * 调用project对象的setXXX方法将数据存储到project
	   * 对象.
	   */
	  @RequestMapping("doSaveObject")
	  @ResponseBody
	  public JsonResult doSaveObject(Project entity){
	     projectService.saveObject(entity);
	     return new JsonResult("insert ok");
	  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值