[Spring MVC]

网友投稿 221 2023-06-25


[Spring MVC]

Spring MVC自带的表单标签比较简单,很多时候需要借助EL和jsTL来完成。

下面是一个比较简单的表单提交页面功能:

1、User model

package com.my.controller.bean;

import java.util.Date;

import java.util.List;

import javax.validation.constraints.Future;

import javax.validation.constraints.Max;

import javax.validation.constraints.Min;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Email;

import org.hibernate.validator.constraints.Length;

import org.hibernate.validator.constraints.NotEmpty;

public class User {

private long id;

@Length(min=2, max=50, message="User name length range = 2-50")

private String name;

@Future(message="时间不能小于今天")

private Date createTime;

@NotEmpty(message="Customer不能为空")

private List customers;

@NotNull(message="Girl不能为空")

private boolean girl;

private String[] cbx;

@NotNull(message="Age can NOT be Null")

@Min(value=18, message="最小18岁")

@Max(value=100, message="最大100岁")

private int age;

@Email(message="Email格式不正确")

private String email;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Date getCreateTime() {

return createTime;

}

public void setCreateTime(Date createTime) {

this.createTime = createTime;

}

public List getCustomers() {

return customers;

}

public void setCustomers(List customers) {

this.customers = customers;

}

public boolean isGirl() {

return girl;

}

public void setGirl(boolean girl) {

this.girl = girl;

}

public String[] getCbx() {

return cbx;

}

public void setCbx(String[] cbx) {

this.cbx = cbx;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}

2、Controller

package com.my.controller;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;

import org.springframework.validation.BindingResult;

import org.springframework.validation.FieldError;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.RequestMNUVCrapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.servlet.ModelAndView;

import com.my.controller.bean.Customer;

import com.my.controller.bean.User;

@Controller

@RequestMapping(value="/post")

public class TestPostController {

private static List users = new ArrayList();

{

//-----------------------------------------------

// 设置Entity

// -----------------------------------------------

users.add(new User());

User user = users.get(0);

user.setId(1);

user.setName("Robin");

user.setCreateTime(new Date());

user.setGirl(true);

user.setCbx(new String[] {"1", "2", "3"});

user.setAge(18);

user.setEmail("abcd@abc.com");

user.setCustomers(new ArrayList());

Customer customer1 = new Customer();

customer1.setId(1);

customer1.setCompany("Company - 1");

customer1.setCreateTime(new Date());

customer1.setUser(user);

user.getCustomers().add(customer1);

Customer customer2 = new Customer();

customer2.setId(1);

customer2.setCompany("Company - 2");

customer2.setCreateTime(new Date());

customer2.setUser(user);

user.getCustomers().add(customer2);

}

@RequestMapping

public ModelAndView index() {

ModelAndView view = new ModelAndView("TestPost/index");

view.addObject("users", users);

return view;

}

@RequestMapping(value="/addUser", method=RequestMethod.POST)

public ModelAndView addUser(@ModelAttribute @Valid User user, BindingResult result) {

ModelAndView view = new ModelAndView("redirect:/post");

if(result.hasErrors()) {

List errors = result.getFieldErrors();

for(FieldError err : errors) {

System.out.println("ObjectName:" + err.getObjectName() + "\tFieldName:" + err.getField()

+ "\tFieldValue:" + err.getRejectedValue() + "\tMessage:" + err.getDefaultMessage());

}

view.addObject("users", users);

return view;

}

user.setId(users.size() + 1);

user.getCustomers().get(0).setId(1);

user.getCustomers().get(0).setUser(user);

users.add(user);

view.addObject("users", users);

return view;

}

}

3、View

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ page import="com.my.controller.bean.*" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

<%@ taglib prefix="st" uri="http://springframework.org/tags" %>

<%@ taglib uri="http://springframework.org/tags/form" prefix="sf" %>

User:${user.name}

Create time:

Is girl:

Yes

No

N/A


Checkboxs:

${item},


Age:${user.age}

E-mail:${user.email}

Company name

User

Create time

User name:


Is girl:


Checkboxs:


Age:

E-mail:

Create time:


Company:


4、测试结果


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Bootstrap导航条的使用和理解3
下一篇:Angular 常用指令实例总结整理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~