`
guanxi
  • 浏览: 40251 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SpringMVC 做服务端数据验证

阅读更多
@Entity
@Table(name = "menu_menu")
public class Menu {
	@Id
	@Column(name = "id")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer id;
	
	@Size(min = 4, max = 20, message = "菜单名称长度必须位于5到20之间") 
	@Column(name = "name")
	private String name;
	
//	@Email(message = "必须是Email 格式")
	@Column(name = "href")
	private String href;
	
	@Column(name = "father_id")
	private Integer parent;
	

 我们可以直接在实体类中加入验证, @Size(min = 4, max = 20, message = "菜单名称长度必须位于5到20之间")

 

   在 Controllor 管理中,

      

@RequestMapping("/menu/save")
	public String saveMenu(@Valid @ModelAttribute Menu menu, BindingResult result,SessionStatus status) {
		if (result.hasErrors()) {
			return "/menu/edit";
		} else {
			baseDAO.saveObject(menu);
			status.setComplete();
			return "redirect:/menu/index";
		}

	}

 表单保存时候 在保存函数 加入@Valid  验证

 

 页面上加入如下代码:

<form class="form-horizontal" action="#" th:action="@{/menu/save}" th:object="${menu}" method="post">

  <input type="hidden" id="id" name="id"  th:field="*{id}"/>
  <div class="form-group">
    <label for="name" class="col-sm-2 control-label">名称</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="name" placeholder="菜单名称" name="name"  th:field="*{name}"/>
      <span th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Name Error</span>
    </div> 

 

显示效果如下, 是不是很简单?

    



 

    当然,一般配合 jquery.form.validata 做前端的表单验证。 

     完整工程代码如下:

                     https://github.com/guanry/wmshop.git



 

    配置后本地访问地址:

 

              http://127.0.0.1:8080/menu/index   

      

  下面需要处理国际化的问题

 

  • 大小: 19.1 KB
  • 大小: 33.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics