Spring form标签示例

来源:互联网 发布:mac 黑客帝国屏保 编辑:程序博客网 时间:2024/06/04 18:12
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!-- spring 的form标签 --><%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>用户管理</title>  </head>  <body>    <sf:form method="post" modelAttribute="user" enctype="multipart/form-data">        username:<sf:input path="username"/> <sf:errors path="username"/><br>        password:<sf:password path="password"/> <sf:errors path="password"/><br>        email:<sf:input path="email"/> <sf:errors path="email"/><br>        Attach:<input type="file" name="attachs"/><br>        Attach:<input type="file" name="attachs"/><br>        <input type="submit" value="添加用户"/>    </sf:form>  </body></html>

Controller端的add动作代码:

//添加用户  post请求  @RequestParam("attachs")MultipartFile[] attachs 因为使用了数组所有不会自动转换,必须使用@RequestParam    @RequestMapping(value="/add",method=RequestMethod.POST)    public String add(@Validated User user , BindingResult br,@RequestParam("attachs")MultipartFile[] attachs,HttpServletRequest req) throws IOException{//一定要紧跟validated之后,写验证结果类        if(br.hasErrors()){            //如果有错误显示add试图            return "user/add";        }        //文件上传        String realpath = req.getSession().getServletContext().getRealPath("/resources/upload");        System.out.println(realpath);        for(MultipartFile attach:attachs){            if(attach.isEmpty()) continue;            File f = new File(realpath+"/"+attach.getOriginalFilename());            FileUtils.copyInputStreamToFile(attach.getInputStream(), f);        }        users.put(user.getUsername(), user);        return "redirect:/user/users";  //客户端跳转    }

Spring beans文件配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="        http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd        http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context-3.0.xsd        http://www.springframework.org/schema/mvc         http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"        >        <!-- 组件扫描 -->        <context:component-scan base-package="com.test.controller"/>        <!-- 注解驱动 -->        <mvc:annotation-driven/>        <!-- 映射静态资源 -->        <mvc:resources mapping="/resources/**" location="/resources/" />        <!-- 内部资源视图解析器 -->        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">            <!-- 引入jstl标签库所使用,帮助文档建议加上,不加应该也可以 -->            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>            <!-- 前缀 -->            <property name="prefix" value="/WEB-INF/jsp/"/>            <!-- 后缀 -->            <property name="suffix" value=".jsp"/>        </bean>        <!-- 全局异常配置 -->        <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">            <!-- 注入Properties -->            <property name="exceptionMappings">                <props>                    <!-- error是jsp页面 -->                    <prop key="com.test.exception.UserException">error</prop>                </props>            </property>        </bean>        <!-- 文件上传解析器 ,id必须是multipartResolver-->        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">            <!-- 设置最大上传5M -->            <property name="maxUploadSize" value="5000000" />        </bean></beans>
原创粉丝点击