Controller
protected BindException bindObject(HttpServletRequest request,
Object command, Validator validator) throws Exception {
ServletRequestDataBinder binder = createBinder(request, command);
binder.bind(request);
BindException errors = new BindException(command,
getCommandName(command));
if (validator.supports(command.getClass())) {
ValidationUtils.invokeValidator(validator, command, errors);
}
return errors;
}
TestFormBean formBean = new TestFormBean();
Collection testList = new ArrayList();
TestSelect a = new TestSelect();
a.setCode("1");
a.setName("a");
TestSelect b = new TestSelect();
b.setCode("2");
b.setName("b");
TestSelect c = new TestSelect();
c.setCode("3");
c.setName("c");
testList.add(a);
testList.add(b);
testList.add(c);
BindException errorModule = bindObject(request, formBean,
new TestValidator());
if (errorModule.hasErrors()) {
Map model = errorModule.getModel();
model.put("testList", testList);
return new ModelAndView("loginview", model);
}
FormBean
public class TestFormBean {
private String username;
private String password;
private Integer tokennumber;
private String testSelect;
private boolean testCheckBox;
private String testRadio;
private String testTextArea;
private String testHidden;
public boolean getTestCheckBox() {
return testCheckBox;
}
public void setTestCheckBox(boolean testCheckBox) {
this.testCheckBox = testCheckBox;
}
public String getTestHidden() {
return testHidden;
}
public void setTestHidden(String testHidden) {
this.testHidden = testHidden;
}
public String getTestRadio() {
return testRadio;
}
public void setTestRadio(String testRadio) {
this.testRadio = testRadio;
}
public String getTestTextArea() {
return testTextArea;
}
public void setTestTextArea(String testTextArea) {
this.testTextArea = testTextArea;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getTokennumber() {
return tokennumber;
}
public void setTokennumber(Integer tokennumber) {
this.tokennumber = tokennumber;
}
public String testSelect() {
return testSelect;
}
public void setTestSelect(String testSelect) {
this.testSelect = testSelect;
}
public String getTestSelect() {
return testSelect;
}
}
Validator
public class TestValidator implements Validator {
public boolean supports(Class clazz) {
return TestFormBean.class.equals(clazz);
}
public void validate(Object obj, Errors errors) {
TestFormBean fromBean = (TestFormBean) obj;
Integer tokennumber = fromBean.getTokennumber();
if (null == tokennumber || tokennumber.intValue() <= 1000)
errors.rejectValue("tokennumber", "test", null, "must > 1000");
}
}
JSP
<form:form commandName="command" name="cmForm" action="/cm/loginproc.htm">
<form:input path="username"/>
<spring:bind path="command.password">
<input name="password" value='<c:out value="${status.value}"/>'>
<c:out value="${status.errorMessage}"/>
</spring:bind>
<spring:bind path="command.tokennumber">
<input name="tokennumber" value='<c:out value="${status.value}"/>'>
<c:out value="${status.errorMessage}"/>
</spring:bind>
<form:select path="testSelect">
<form:option value="-" label="--Please Select"/>
<form:options items="${testList}" itemValue="code" itemLabel="name"/>
</form:select>
<form:checkbox path="testCheckBox"/>
<form:radiobutton path="testRadio" value="1"/>
<form:radiobutton path="testRadio" value="2"/>
<form:textarea path="testTextArea" rows="3" cols="20"/>
<form:hidden path="testHidden"/>
</form:form>
刚刚做好一个测试的东东,打算在项目中这样使用,有什么问题请大家批评指正,谢谢!
分享到:
相关推荐
控制器可以通过多种方式实现,如AbstractController、AbstractCommandController、MultiActionController、SimpleFormController、AbstractWizardFormController等,根据应用需求选择合适的基类。与Struts相比,...
它提供了多种控制器类型,如AbstractController、AbstractCommandController、MultiActionController、SimpleFormController等,满足不同层次的控制需求。与Struts不同,SpringMVC允许直接使用任意对象作为命令或...
为了适应复杂的应用场景,Spring提供了多种抽象控制器,如AbstractController、AbstractCommandController、MultiActionController、SimpleFormController和AbstractWizardFormController,允许开发者按需选择。...
2. **控制器类**:使用`SimpleFormController`或`MultiActionController`实现的处理用户请求的Java类。 3. **视图解析**:如JSP页面,用于展示用户界面,它们通过Spring MVC的视图解析器如`...
- Spring MVC提供多种类型的控制器,如AbstractController、AbstractCommandController、MultiActionController、SimpleFormController等,帮助开发者处理不同复杂度的控制逻辑。 - 与Struts相比,Spring MVC允许...
自己写的spring表单绑定的小例子,分别使用SimpleFormController,MultiActionController,spring的form tag和validator。 还在MultiActionController里面实现了表单的绑定
它提供了一个简单的控制器接口,如`ModelAndView.handleRequest(request, response)`,并支持多种类型的控制器,如AbstractController、AbstractCommandController、MultiActionController、SimpleFormController和...
控制器是负责处理请求和响应的组件,它可以是一个简单的控制接口,也可以是一个复杂的控制器,例如 AbstractController、AbstractCommandController、MultiActionController、SimpleFormController 和 ...
- 继承`MultiActionController`类以在单个控制器中实现多个方法处理不同的请求。 5. **配置控制器和URL映射**:在`spring-servlet.xml`文件中配置控制器和URL之间的映射关系。这一步类似于在Struts2中的`struts....
标题“SpringMVC的增删改查”告诉我们,这篇文章将介绍如何使用SpringMVC框架来实现基本的CRUD操作,这些操作是任何Web应用程序不可或缺的。 描述解释 描述“springMVC的增删改查,很好入门的学习资料。新手能看懂...
- **UseCase、Action和Service的关系**:UseCase描述了系统的功能需求,Action实现了UseCase中的业务逻辑,而Service则是对Action的进一步抽象。 **5.7 BO** - **BO(Business Object)**:BO是业务层的核心组成...
这部分内容介绍了如何使用Spring框架进行持久层开发,包括JDBC、Hibernate等技术的集成。 #### 二十八、JdbcTemplate基本存取 JdbcTemplate是Spring提供的一个用于简化JDBC编程的类,它提供了一系列的方法来执行...
与Struts和Webwork等框架相比,Spring更加灵活,可以在不需要全部功能时仅使用其部分组件。Spring强调的是业务逻辑与Web层的解耦,比如验证逻辑可以独立于控制器执行,有利于代码重用和测试。 2. **Web MVC设计原则...
第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...
第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...
第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...
第十二章 使用Hibernate快速实现持久层处理 12.1 Hibernate介绍 12.1.1 Hibernate简介 12.1.2 下载Hibernate 12.1.3 配置Hibernate 12.2 Hibernate的核心 12.2.1 Configuration(配置Connection) 12.2.2 ...
在传统的Spring MVC中,Controller通常需要实现`org.springframework.web.servlet.mvc.Controller`接口,或者是继承`SimpleFormController`或`MultiActionController`。但是使用注解后,Controller不再需要继承任何...
这与传统的实现 `org.springframework.web.servlet.mvc.Controller` 接口或者继承 `SimpleFormController` 或 `MultiActionController` 不同,`@Controller` 注解使得我们的类变成了一个纯粹的 POJO,无需额外的接口...
ParameterMethodNameResolver MultiActionController 与 PropertiesMethodNameResolver ParameterizableViewController AbstractCommandController AbstractFormController ...