spring:bind

web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!--context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>redirect.jsp</welcome-file>
</welcome-file-list>
</web-app>


dispatch-servlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<bean id="defaultHandlerMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
[color=red] <prop key="register.htm">registerController</prop>[/color]
<prop key="login.htm">loginController</prop>
<prop key="index.htm">indexController</prop>
</props>
</property>
</bean>

<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean id="indexController"
class="org.springframework.web.servlet.mvc.ParameterizableViewController"
p:viewName="/register"/>
<bean id="registerController" class="net.kingbit.actions.RegisterStudentController">
[color=red] <property name="sessionForm">
<value>true</value>
</property>
<property name="commandName">
<value>student</value>
</property>[/color]

<property name="formView" value="/register"/>
<property name="commandClass">
<value>net.kingbit.pojos.Student</value>
</property>
<property name="validator">
<ref bean="registerValidator"/>
</property>
</bean>

<bean id="loginController" class="net.kingbit.actions.LoginController"/>

<bean id="registerValidator" class="net.kingbit.validator.StudentValidator"/>

</beans>


redirect.jsp:
<%--
Views should be stored under the WEB-INF folder so that
they are not accessible except through controller process.

This JSP is here to provide a redirect to the dispatcher
servlet but should be the only JSP outside of WEB-INF.
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
[color=red]<% response.sendRedirect("register.htm"); %>[/color]

register.jsp:
<%--
Document : register
Created on : Jan 31, 2009, 10:49:30 AM
Author : Kang
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


</head>


<body>
<form action="<%=request.getContextPath() %>/register.htm" method="post" name="registerForm">

[color=cyan] <table>
<tr><td><spring:bind path="student.name">
name: <input type="text" name="${status.expression}"/>(必须输入) </td> <td>${status.errorMessage}</spring:bind></td> </tr>
<tr><td><spring:bind path="student.sex">
sex: <input type="text" name="${status.expression}"/>(必须输入,且为0或1)</td><td>
${status.errorMessage}</spring:bind>
</td></tr>
</table>[/color]



<input type="submit" value="submit"/>

</form>
</body>
</html>


RegisterStudentController:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package net.kingbit.actions;

import net.kingbit.pojos.Student;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

/**
*
* @author Kang
*/
public class RegisterStudentController extends SimpleFormController{


protected ModelAndView onSubmit(Object object, BindException be) throws Exception {
Student stu=(Student)object;
return new ModelAndView("/success","student",stu);
}
}


StudentValidator:验证类

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package net.kingbit.validator;

import org.apache.oro.text.perl.Perl5Util;
import net.kingbit.pojos.Student;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

/**
*
* @author Kang
*/
public class StudentValidator implements Validator {
private static String SEX_REGEXP="/^[0-1]$/";
public boolean supports(Class cls) {
return cls.equals(Student.class);
}

public void validate(Object object, Errors errors) {
Student student=(Student)object;
if(student.getName().equals("")||student.getName().equals(null))
{ValidationUtils.rejectIfEmpty(errors, "name", "name", "姓名必须输入");}

if(student.getSex().equals("")||student.getSex().equals(null)){ValidationUtils.rejectIfEmpty(errors, "sex", "sex", "性别必须输入");}
Perl5Util perl5Util=new Perl5Util();
if(!perl5Util.match(SEX_REGEXP, student.getSex())){
errors.rejectValue("sex", "not confirmat", null,"性别格式错误");}
}

}


Student:一个简单的pojo
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package net.kingbit.pojos;

/**
*
* @author Kang
*/
public class Student {
private String name;
private String sex;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

}


跳转到表单页面的Controller必须是表单控制器!换颜色的地方就是要注意的地方!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值