中文乱码解决和spring注解问题
中文乱码问题:
前台的搜索框输入中文,传到后台发现中文字符是乱码的,导致数据库查询数据失败,从后台代码直接入手修改,添加代码
searchWhere= new String(searchWhere.getBytes("ISO-8859-1"),"utf-8");
其中 searchWhere 代表获取的含有中文的字符串。
spring注解问题:
启动项目时报错,错误大约是注解某个bean失败,检查springmvcContext.xml文件,这个文件中有关于注解的代码
<context:component-scan base-package="com.lj" use-default-filters="false" > <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="regex" expression="com.lj.*Controller"/> </context:component-scan>
代码意思大约是:扫描com.lj下的所有文件的注解,如果有@Component(包括他的子类注解@Service,@Reposity等)注解的文件,就去对应的实例化bean。但是因为use-default-filters="false",所以就不会扫描全部,准备扫描部分;扫描那部分呢?context:include-filter 告诉了,首先扫描controller的注解,然后扫描范围是匹配正则表达式“com.lj.*Controller”的类。关于context:include-filter 的type有5种
过滤器类型 | 描述 |
annotation | 过滤器扫描使用注解所标注的那些类,通过expression属性指定要扫描的注释 |
assignable | 过滤器扫描派生于expression属性所指定类型的那些类 |
aspectj | 过滤器扫描与expression属性所指定的AspectJ表达式所匹配的那些类 |
custom | 使用自定义的org.springframework.core.type.TypeFliter实现类,该类由expression属性指定 |
regex | 过滤器扫描类的名称与expression属性所指定正则表示式所匹配的那些类 |
引用他人的一句话:Use-dafault-filters=”false”的情况下:<context:exclude-filter>指定的不扫描,<context:include-filter>指定的扫描。