程序员如何做SOHO一族接单赚外快呢?

在Spring 3 中,对表单提交的校验方式比较常见的有两种

(1)基于注解:对于简单的属性校验,例如,长度,非空等,可以使用Spring,或是Hibernate自带的校验注解

(2)自定义校验类:对于复杂的业务校验可以自定义校验类,该类继承自org.springframework.validation.Validator

(3)前台JS校验

增加表单校验功能大概分一下几个步骤

定义校验规则

基于注解的验证

只需要在相关的实体字段上添加校验注解即可,下面的例子基于hibernate的校验标签

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Email;

public class User extends BasePO {

  private static final long serialVersionUID = 6295814719063548261L;
  private Long id;
  @Length(min = 3, max = 20)
  private String name;
  @Length(min = 6, max = 20)
  private String pwd;
  @Email
  private String email;

  /*get set 省略*/

自定义校验类

创建基于org.springframework.validation.Validator的子类,实现supports,validate方法

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import com.eric.User;

public class UserValidator implements Validator {

  @Override
  public boolean supports(Class<?> clazz) {
    return User.class.equals(clazz);
  }

  @Override
  public void validate(Object target, Errors errors) {
    User user = (User) target;
    if (!user.getPwd().equals(user.getRetryPwd())) {
      errors.rejectValue("retryPwd", "error.pwd.notmath");
    }
  }

}

声明校验

基于注解的验证

注解的校验,只需要在spring的配置文件中添加如下代码段

<mvc:annotation-driven/>

自定义校验类

需要在Spring MVC Controller中添加以下方法

@InitBinder
  protected void initBinder(WebDataBinder binder) {
    binder.addValidators(new UserValidator());
  }

使用校验

不管是自定义校验,还是基于注解的校验,在使用的方式上没有区别,都需要经过下面两步

(1)在Controller 方法中添加@Valid注解

当方法的参数中使用@Valid注解时,进入该方法时会对传进来的user参数进行校验,校验的结果存储在result中,可以在方法中对result.hasErrors()的状态进行判断

@RequestMapping(USER_UPDATE_URL)
  public String action(@Valid User user, BindingResult result,
      @RequestParam(value = "action") String action, Map<String, Object> model) {
    String resultURL = null;

    if (result.hasErrors()) {
      prepareUpdate(model, user);
      return USER_CREATE_URL;
    }
    return resultURL;
  }

(2)在页面中添加错误标签

<sf:errors path="retryPwd" cssClass="error"/> 中的path指定了对应的属性路径

<div class="form-group">
    <label for="password"><spring:message code="user.field.pwd" /></label>
    <sf:password path="pwd" id="pwd" class="form-control" size="15"
        showPassword="true" maxlength="50" />
    <sf:errors path="pwd" cssClass="error" />
</div>

<div class="form-group">
    <label for="confirmpassword"><spring:message
            code="user.field.repwd" /></label>
    <sf:password path="retryPwd" id="retrypwd" class="form-control"
        size="15" maxlength="50" showPassword="true" />
    <sf:errors path="retryPwd" cssClass="error" />
</div>

程序员如何做SOHO一族接单赚外快呢?

时间: 2024-10-01 03:59:54

程序员如何做SOHO一族接单赚外快呢?的相关文章

《极客头条》精选:每天每周每月每年程序员该做的事情

程序员每天该做的事 1.总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2.考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3.考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢的 4.考虑自己一天工作完成的质量和效率能否还能提高 一天只提高1%,365天你的效率就能提高多少倍你知道吗?(1+

程序员,做技术神马的,请对自己好一点!

昨天在Google图片中输入“程序员”,搜索到的第一张图片是这样的: 一位平头兄桌上两台笔记本一台台式机.其中的一台中显示是某个论坛的页面[估计正在回答某个问题].中间那台正在启动Eclipse[要开始写Java程序了].平头兄的目光此时盯在台式机的显示器上[应该是正在远程或者是某个虚拟机],旁边还有一本打开的书… 图片的名字是“真正的程序员就应该这样”,程序员就应该这样么? 是谁规定程序员就应该是这样的,本来是应该四个人做的事情让一个程序员做,难道程序员是四核的? 作为程序员中的一份子,我时刻

程序员,做艺术家不做码农

前几天和一个朋友聊天时说:我有强迫症,每次看到不符合自己审美的代码时,总想重构一下.朋友的观点与大多数人相仿,程序只要满足要求,运行正确就可以. 在现实的工作中一样,每当看到一段优美且高效的代码,我总是喜欢多看几遍,满心的享受.但是我们产品中的太多代码让我这个代码洁癖"患者"看了非常的烦躁: 1. 随便一个源文件都是上百行的函数,有些甚至超过500行(含空行和注释). 2. 大量没有必要的临时变量定义. 3. 习惯性的把所有变量声明定义放到函数前面,一些大函数甚至超过20行都是函数局部

后端程序员都做些什么?

后端程序员都做些什么? 2017-12-25 刘欣 程序猿 来自:码农翻身(微信号:coderising) 这个问题来自于QQ网友,一句两句说不清楚,索性写个文章. 我刚开始做Web开发的时候,根本没有前端,后端之说. 原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器. 即使后来Javascript在浏览器中添加了一些AJAX的效果,那也是锦上添花,绝对不敢造次.因为页面的HTML主要还是用所谓"套模板"的方

30岁后的程序员都做什么去了

最近,很多人都在讨论"中年危机",中年危机,一般指39-65岁的中年人经历的一系列事业.家庭.感情.健康上的困境.现在的90后程序员们,他们之中大多数的年龄在四舍五入之后都满30岁了. 年龄的增长,往往也意味着身上的责任逐渐变多.他们也就逐渐承担起事业.家庭甚至社会上的责任,而是适应这些责任并不是一朝一夕的事儿.这时候的他们在看了很多关于程序员30多岁被辞退等新闻后,不仅发出感慨,程序员真的是个青春饭职业?那些30岁后的程序员都做什么去了? 我们先来看一张图,这是网传的程序员职业路线图

.net程序员转行做手游开发经历(二)

上篇主要介绍自己个人的经历,这篇主要讲下学习新语言的过程. 上次说到最终选择的语言是swift,框架用spritekit,上次有网友对为什么选择用这俩呢,为什么不用cocos和unity呢,cocos和unity我觉得相对来说比较成熟,但是一开始觉得要接触的东西会比较多,对我来说学习的成本要大点,spritekit 本身集成在xcode中,对新手来说会省去很多的配置工作,可以很快的进入开发工作,spritekit目前用的人确实不多,现成的开发库也比较少,遇到问题也不好解决,这个在我们后面开发中也

做10年Windows程序员与做10年Linux程序员的区别

如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大.我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在windows下面的, 学的是VB,后来转到VC++,当时用的是VC6.0, 做windows下面的开发5年后转入linux下面做开发的,开始在li

做10年Windows程序员与做10年Linux程序员的区别(附无数评论)(开源软件相当于熟读唐诗三百首,不会作诗也会吟)

如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大.我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在windows下面的, 学的是VB,后来转到VC++,当时用的是VC6.0, 做windows下面的开发5年后转入linux下面做开发的,开始在li

每天,每周,每月,每年程序员该做的事情

程序员每天该做的事 1.总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2.考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3.考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢的 4.考虑自己一天工作完成的质量和效率能否还能提高 一天只提高1%,365天你的效率就能提高多少倍你知道吗? (