问号传参和路径传参
问号传参:
href="/emp/getEmpByEid?eid=
e
.
e
i
d
通
过
r
e
q
u
e
s
t
.
g
e
t
p
a
r
a
m
e
t
e
r
(
"
"
)
来
获
取
,
能
获
取
多
个
参
数
路
径
传
参
:
h
r
e
f
=
"
/
e
m
p
/
d
e
l
e
t
e
E
m
p
/
{e.eid} 通过request.getparameter(" ")来获取,能获取多个参数 路径传参: href="/emp/deleteEmp/
e.eid通过request.getparameter("")来获取,能获取多个参数路径传参:href="/emp/deleteEmp/{e.eid}"
@PathVariable 可以获得到e.eid,并且只能传递一个参数
add操作
@RequestMapping("/add")
public String add(){
return "add.jsp";
}
@PostMapping("/addEmp")
public String addEmp(HttpServletRequest request,Model model){
String eids=request.getParameter("eid");
int eid = eids == null ? -1 : Integer.parseInt(eids);
String name=request.getParameter("name");
String salarys=request.getParameter("salary");
double salary=salarys==null?-1:Double.parseDouble(salarys);
empService.addEmp(new Emp(eid,name,salary));
return "redirect:/emp/emps";
}
校验器
public class EmpValidate implements Validator {
@Override
public boolean supports(Class<?> aClass) {
return Emp.class.isAssignableFrom(aClass);
}
@Override
public void validate(Object o, Errors errors) {
Emp e= (Emp) o;
ValidationUtils.rejectIfEmpty(errors,"eid","emp.eid");
ValidationUtils.rejectIfEmpty(errors,"name","emp.name");
ValidationUtils.rejectIfEmpty(errors,"salary","emp.salary");
double salary=e.getSalary();
if(salary<0){
errors.rejectValue("salary","emp.salary.invalidate");
}
}
}
@GetMapping("/saveEmp")
public ModelAndView saveEmp(){
return new ModelAndView("saveEmp.jsp", "emp", new Emp());
}
@PostMapping("/saveEmp")
public String saveEmp(Emp e, BindingResult errors, Model model){
EmpValidate ev=new EmpValidate();
ev.validate(e,errors);
if(errors.hasErrors()){
model.addAttribute("emp", e);
return "saveEmp.jsp";
}
return "redirect:/emp/emps";
}
}
配置文件中
<bean class="org.springframework.context.support.ReloadableResourceBundleMessageSource" id="messageSource">
<property name="basename" value="/WEB-INF/msg"></property>
</bean>
效果