一个项目的FAQ
来源:互联网 发布:php bt下载 编辑:程序博客网 时间:2024/06/07 08:00
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)在映射文件中使用别名
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"); }
- 一个项目的FAQ
- 编译内核的一个FAQ
- C#.NET常见问题(FAQ)-想要另存一个项目,sln文件丢了怎么办,如何打开高版本的项目
- 一个关于java FAQ的站点
- 《COM技术内幕》整理的一个FAQ
- gitbook搭建一个简单的faq网站
- 沉睡不醒整理的一个IIS FAQ
- C#.NET常见问题(FAQ)-程序如何把窗体文件从从一个项目中复制到另一个项目
- 常用vim faq,一个链接
- log4j的FAQ
- 写给初学者的FAQ
- 关于ActiveX的FAQ
- oracle的FAQ -- zz
- 我的FAQ
- 关于Delphi的FAQ
- 新版FAQ的设计
- Xindice的FAQ
- log4j的FAQ
- Reverse Integer--LeetCode
- 我的第一篇博客
- xlistview+imageloder+数据请求+下拉刷新
- 冒泡事件解析
- POJ-3259 Wormholes【单源最短路判负环】
- 一个项目的FAQ
- 针对input添加padding后宽度变化问题
- 第七周项目二__建立链队算法库
- 点击选择背景色
- Exception in thread "main" java.util.zip.ZipException: error in opening zip file
- python之argparse模块
- nyoj1092数字分隔(二)
- django Course has no field named
- numpy教程:随机数模块numpy.random