oracle + ssm 项目重构遇到的问题及解决方法
2017-10-13 10:19
351 查看
1.遇到了个异常:
javax.servlet.ServletException: No adapter for handler [public int com.picc.ecargo.controller.addititive.AddititiveController.addititiveSubmit(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.springframework.ui.ModelMap,com.picc.ecargo.vo.addititive.AddititiveVo)
throws java.lang.Exception]: Does your handler implement a supported interface like Controller?
导致这个异常出现的问题比较多,我说一下自己出现问题的原因:
我是用ssm框架,用的注解,在传递表单里面的参数时,要用到实体类AddititiveVo,一开始我是没加@ResponseBody注解,所以报这个错误了,后来去网上搜,也没什么结果,偶尔发现,其他的方法都有这个注解,唯独这个方法没有,所以加上了,然后就没问题了
那么来扩展一下,@ResponseBody这个注解的作用:
作用:
i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
当然导致这个异常的原因也很多:比如类名和包名不小心写错了,没加@controller注解.......不一一去说了,以后遇到类似的情况,再更新文章
2.返回的数据应该是个List<实体类A>时,xml中select中的resulttype怎么写
resulttype直接写成resulttype="实体类A"就可以,不用管是不是list,只要是一个类型的就可以
3.批量查询数据ssm框架中在xml中怎么写那?
前端:接受参数是个类似这样的字符串:"110,120,119,10086"
<form id = "clauseSubmit" action="${basePath}/addititive/addititiveSubmit.do" method = "post">
<select multiple="multiple" id="additivenotpass" class="form-control list-group" name="additivenotpass" style="width:300px;height:375px;">
<#if notPassCaluseName??>
<#list notPassCaluseName as caluseName>
<option id="${caluseName.additionalriskid}" name="caluseName" value="${caluseName.additionalriskid}">${caluseName.clausecname}</option>
</#list>
<#else>
</#if>
</select>
</form>XML:将字符串分割了
4.创建序列
create sequence seq_newsId
increment by 1
start with 1
maxvalue 999999999;
5.oracle中字段类型是Date的,实体类也是Date的,要set时间的时候,这个时间的格式....?
推荐一个工具类:
public class DataUtil {
public static Date SysTime() {
String Nowtime = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
java.sql.Date time = java.sql.Date.valueOf(Nowtime);
return time;
}
}
6.在重构项目时,可能涉及到表的修改,这时候应该有冗余字段,方便以后做功能扩展
7.oracle改表名
ALTER TABLE old_table_name RENAME TO new_table_name;
javax.servlet.ServletException: No adapter for handler [public int com.picc.ecargo.controller.addititive.AddititiveController.addititiveSubmit(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,org.springframework.ui.ModelMap,com.picc.ecargo.vo.addititive.AddititiveVo)
throws java.lang.Exception]: Does your handler implement a supported interface like Controller?
导致这个异常出现的问题比较多,我说一下自己出现问题的原因:
我是用ssm框架,用的注解,在传递表单里面的参数时,要用到实体类AddititiveVo,一开始我是没加@ResponseBody注解,所以报这个错误了,后来去网上搜,也没什么结果,偶尔发现,其他的方法都有这个注解,唯独这个方法没有,所以加上了,然后就没问题了
public @ResponseBody int addititiveSubmit(HttpServletRequest request,HttpServletResponse response ,ModelMap map,AddititiveVo avo)throws Exception{
那么来扩展一下,@ResponseBody这个注解的作用:
作用:
i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
当然导致这个异常的原因也很多:比如类名和包名不小心写错了,没加@controller注解.......不一一去说了,以后遇到类似的情况,再更新文章
2.返回的数据应该是个List<实体类A>时,xml中select中的resulttype怎么写
resulttype直接写成resulttype="实体类A"就可以,不用管是不是list,只要是一个类型的就可以
3.批量查询数据ssm框架中在xml中怎么写那?
前端:接受参数是个类似这样的字符串:"110,120,119,10086"
<form id = "clauseSubmit" action="${basePath}/addititive/addititiveSubmit.do" method = "post">
<select multiple="multiple" id="additivenotpass" class="form-control list-group" name="additivenotpass" style="width:300px;height:375px;">
<#if notPassCaluseName??>
<#list notPassCaluseName as caluseName>
<option id="${caluseName.additionalriskid}" name="caluseName" value="${caluseName.additionalriskid}">${caluseName.clausecname}</option>
</#list>
<#else>
</#if>
</select>
</form>XML:将字符串分割了
<select id="findListByNumberY" resultType="com.picc.ecargo.po.riskcode.FreightAdditiveClauseCode" > select * from AdditionalRiskCode where INSURANCETYPE = '1' and ADDITIONALRISKID not in <foreach item="item" index="index" collection="array" open="(" separator="," close=")"> #{item} </foreach> </select>
4.创建序列
create sequence seq_newsId
increment by 1
start with 1
maxvalue 999999999;
5.oracle中字段类型是Date的,实体类也是Date的,要set时间的时候,这个时间的格式....?
推荐一个工具类:
public class DataUtil {
public static Date SysTime() {
String Nowtime = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
java.sql.Date time = java.sql.Date.valueOf(Nowtime);
return time;
}
}
6.在重构项目时,可能涉及到表的修改,这时候应该有冗余字段,方便以后做功能扩展
7.oracle改表名
ALTER TABLE old_table_name RENAME TO new_table_name;
相关文章推荐
- SSM项目重构时遇到的一些问题及解决方法
- JAVAWeb、 Easyui、Ibatis、Oracle项目遇到问题及解决方法
- javaWeb 项目SSM配置要点及可能遇到的问题解决方法
- 基于javaWeb 项目SSM配置要点及可能遇到的问题和解决方法
- linux 操作系统下安装oracle遇到的问题及解决方法
- [原]安装Oracle 11g R2 遇到的两个小问题及解决方法
- 做智囊团项目遇到的问题与解决方法
- Java使用Oracle遇到的最大游标超出问题及其解决方法
- 项目所遇到的一些管理问题解决方法
- 项目中遇到的问题及解决方法
- 近期项目中遇到的问题和相应的解决方法
- SCO UNIXWARE 7.1.3中安装oracle 7.2.3 遇到的问题和解决方法
- python中cx_Oracle模块安装遇到的问题与解决方法
- 使用VIM开发软件项目 - (16) vim编译中遇到的问题及解决方法
- maven整合到eclipse中的android项目遇到的几个问题及解决方法
- python中cx_Oracle模块安装遇到的问题与解决方法
- 在VS.NET 2003中建立项目时遇到的两个问题及解决方法 (转)
- VC++中使用ADO访问Oracle遇到的问题及解决方法(待续)
- Java使用Oracle遇到的最大游标超出问题及其解决方法
- 项目中遇到的一些小问题及解决方法