概述
1、RESTful 风格web.xml 需要配置一下 中心意思就是把POST请求转为DELETE 和 PUT 时候使用
<!-- 配置 HiddenHttpMethodFilter: 把 POST 请求转为 DELETE、PUT 请求 -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
示例DELETE. 具体在链接处理上,如下操作:
$(document).ready(function(){
$(".delete").click(function(){
var href = $(this).attr();
$("form").attr("action",href).submit();
return false;
});
});
---------------------------------------------------------------------
<form ation="" method="POST">
<input type=hidden name="_method" value="DELETE">
</form>
<a class="delete" href="aaa/bbb" > click to delete </a>
2、pojo直接作为参数,支持级联属性
可以使用Servlet原生APT作为目标方法的参数 HttpServletRequest HttpServletResponse HttpSession Writer Reader等
3、处理模型数据:
ModelAndView 两个方法 addObject addAllObject
目标方法的参数还可以传入 Map 和 Model类型
还可以将返回值放入session中,例如在类上面添加 @SessionAttributes(value={"user"},types={String.class}) 则表示有key为user的session 另外有表明字符串类型的数据也要放入session 所以如果方法中有类似 map.put("school","bit"); 则也会有school的session
4、@ModelAttribute
貌似是jsp页面用<form:form标签时候,必须有个属性是 modelattribue="实体" 否则会报错
<input type="hidden" name="_method" value="PUT"/>
<%-- 对于 _method 不能使用 form:hidden 标签, 因为 modelAttribute 对应的 bean 中没有 _method 这个属性 --%>
<%--
<form:hidden path="_method" value="PUT"/>
--%>
5、自定义类型转换器的步骤,以将提交的字符串数据格式是 lastName-email-gender-department 转化成 Employee对象 为例
1)首先继承接口Converter自定义EmployeeConverter
@Component
public class EmployeeConverter implements Converter<String, Employee> {
@Override
public Employee convert(String source) {
if(source != null){
String [] vals = source.split("-");
//GG-gg@atguigu.com-0-105
if(vals != null && vals.length == 4){
String lastName = vals[0];
String email = vals[1];
Integer gender = Integer.parseInt(vals[2]);
Department department = new Department();
department.setId(Integer.parseInt(vals[3]));
Employee employee = new Employee(null, lastName, email, gender, department);
System.out.println(source + "--convert--" + employee);
return employee;
}
}
return null;
}
}
2)springmvc.xml配置文件中做如下配置
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<!-- 配置 ConversionService -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> // 这里原来是 ConversionServiceFactoryBean 为了和格式化相匹配 换成这个 FormattingConversionServiceFactoryBean 这个类既可以进行类型转换 又可以进行格式化
<property name="converters">
<set>
<ref bean="employeeConverter"/>
</set>
</property>
</bean>
即可
6、自定义视图流程
1)继承View接口自定义视图类CustomView
@Component
public class CustomView implements View{
@Override
public String getContentType() {
// TODO Auto-generated method stub
return "text/html";
}
@Override
public void render(Map<String, ?> arg0, HttpServletRequest request,HttpServletResponse response) throws Exception {
response.getWriter().print("hello,this is the custom view,and the time is:"+new Date());
}
}
2)springmvc.xml配置文件中,做如下视图路径配置
<!-- 配置自定义视图解析 优先级数字越小越先调用-->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="100"></property>
</bean>
3) 在目标方法中,返回自定义视图类实例customView即可
7、<mvc:view-controller path="/success" view-name="success"/> 在配置文件中配置这个mvc view controller 标签,可以直接跳转,而不经过handler处理。但是要注意,必须附带配上
<mvc:annotation-driven ></mvc:annotation-driven>这个标签,才不至于让其他的失效。
8、处理静态资源的解决方法
<!-- 处理静态资源问题 -->
<mvc:default-servlet-handler/>
<mvc:annotation-driven ></mvc:annotation-driven>
配这两个。当然还有自己以前的掌握的方法 <mvc:resources location="/test/" mapping="/test/**"/> 两个方法可以比较下
9、数据格式化
@DateTimeFormat(pattern="yyyy-MM-dd")
@NumberFormat(pattern="###,###.##")
放置在实体类的相关属性上面即可。
10、输出错误
11、数据校验
12、配置国际化资源文件
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="i18n"></property>
</bean>
最后
以上就是轻松荷花为你收集整理的尚硅谷springmvc总结的全部内容,希望文章能够帮你解决尚硅谷springmvc总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复