springmvc 参数提交
/**
* 字符串
* 提交的数据name和方法参数名一致
*/
@RequestMapping("/testParam")
public String testParam(String username, String password) {
System.out.printf(username + password);
return "success";
}
/**
* 对象
* 提交的参数自动封装到对象中
* @param account
* @return
*/
@RequestMapping("/saveParam")
public String saveParam(Account account) {
System.out.println(account);
return "success";
}
字符和对象
<form action="/param/saveParam" method="post">
姓名:<input name="username" type="text"><br>
密码:<input name="password" type="text"><br>
金额:<input name="money" type="text"><br>
account里的用户:<input name="user.name" type="text"><br>
account里的用户de年龄:<input name="user.age" type="text"><br>
<input type="submit" value="提交"></input>
</form>
解决提交带中文乱码问题
在web.xml里
<!-- 解决中文乱码 过滤器-->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在 springmvc 的配置文件中可以配置,静态资源不过滤:
<!-- location 表示路径,mapping 表示文件,**表示该目录下的文件以及子目录的文件 -->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>
<mvc:resources location="/scripts/" mapping="/javascript/**"/>
集合
用户:<input name="list[0].name" type="text"><br>
年龄:<input name="list[0].age" type="text"><br>
用户:<input name="map['user'].name" type="text"><br>
年龄:<input name="map['user'].age" type="text"><br>
类型转换问题:
前端提交的格式都是String,springmvc会自动把数据转换成实体类一致格式
某些类型无法自动转换,日期2019/6/16 可以自动转换 2019-6-16则不能转换
需要手动配置
/**
* @author cwl
* @version V1.0
* @Package com.cc.utils
* @date 2019/6/16 8:09
* 字符串转换成日期
*/
public class StringToDate implements Converter<String, Date> {
@Override
public Date convert(String source) {
if (source == null) {
throw new RuntimeException("数据不存在");
}
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
return df.parse(source);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
在配置文件中配置
<bean id="converterService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<!-- 注入一个新的类型转换器 -->
<property name="converters">
<set>
<!-- 配置自定义类型转换器 -->
<bean class="com.cc.utils.StringToDate"></bean>
</set>
</property>
</bean>
<!-- 配置spring开启注解mvc的支持-->
<mvc:annotation-driven conversion-service="conversionService"/>
获取原生servlet API
@RequestMapping("/testServlet")
public String saveParam(HttpServletRequest request) {
System.out.println(request);
return "success";
}