java form 标签_Spring FORM 标签库

Spring FORM标签库

Spring MVC提供了一个JSP标签库(Spring Form),使将表单元素绑定到Model 数据变得更加容易。Spring Framework 提供了一些标签,用于显示 错误,设置主题和输出国际化消息。

使用Spring Form标签库的语法

需要在jsp文件头部加上:

本示例中使用的表单标签

呈现HTML “form” 标签,并向内部标签公开绑定路径以进行绑定。

使用绑定值呈现类型为“text”的HTML“input”标记。

在HTML'span'标签中呈现字段错误。

使用绑定值呈现类型为“ password”的HTML “input”标签。

呈现类型为“radio”的HTML“ input”标签。

呈现HTML“select”元素。支持数据绑定到所选选项。

呈现单个HTML“option”。根据绑定值适当设置“selected”。

呈现HTML“textarea”。

呈现类型为“checkbox”的HTML“input”标签。

简单注册表单示例

1.修改web.xml以配置Dispatcher Servlet。

web.xml

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">

contextConfigLocation

/WEB-INF/applicationContext.xml

org.springframework.web.context.ContextLoaderListener

dispatcher

org.springframework.web.servlet.DispatcherServlet

2

dispatcher

*.html

30

index.jsp

创建一个dispatcher-servlet.xml文件,其中包含所有用于处理用户请求的配置bean,它处理用户请求并将其分派到各个控制器。

dispatcher-servlet.xml

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">

false

index

success

class="org.springframework.web.servlet.view.InternalResourceViewResolver"

p:prefix="/WEB-INF/jsp/"

p:suffix=".jsp" />

3.创建一个Jsp文件以从用户index.jsp接收输入,该文件包含带有Spring Form标签的所有表单字段。

index.jsp

/p>

"http://www.w3.org/TR/html4/loose.dtd">

Welcome to Spring Web MVC project

Spring Form tags Example

User Name:

Password:

First Name:

Last Name:

Gender: Male

Female

Country :

India

USA

Australia

Address:

Select any :

Check Box1

Check Box2

4.创建另一个Jsp文件success.jsp,它是用于显示输出的Spring视图。在此文件中,我们使用表达式语言来显示详细信息。

success.jsp

/p>

"http://www.w3.org/TR/html4/loose.dtd">

Spring Form Tags Example

Spring Form tags examples

User Name: ${uname}

First Name: ${fname}

Last Name: ${lname}

Gender: ${gender}

Country: ${country}

Address: ${addr}

Selected Check box: ${cb}

5.创建一个Java类文件Registration.java,其中包含注册应用程序的业务逻辑。在这里,此文件包含8个私有变量,它们分别具有getter和setter方法,用于存储注册细节。

Registration.java

public class Registration {

private String username;

private String password;

private String fname;

private String lname;

private String gender;

private String country;

private String addr;

private String cb;

public String getAddr() {

return addr;

}

public void setAddr(String addr) {

this.addr = addr;

}

public String getCb() {

return cb;

}

public void setCb(String cb) {

this.cb = cb;

}

public String getCountry() {

return country;

}

public void setCountry(String country) {

this.country = country;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public Registration() {

}

public String getFname() {

return fname;

}

public void setFname(String fname) {

this.fname = fname;

}

public String getLname() {

return lname;

}

public void setLname(String lname) {

this.lname = lname;

}

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;

}

}

6.创建一个RegistrationFormController.java文件,该文件扩展了SimpleFormController以控制用户请求并返回相应的ModelAndView对象。

RegistrationFormController.java

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.SimpleFormController;

public class RegistrationFormController extends SimpleFormController {

@Override

protected ModelAndView onSubmit(Object command) throws Exception {

Registration reg=(Registration)command;

String uname=reg.getUsername();

String fname=reg.getFname();

String lname=reg.getLname();

String gender=reg.getGender();

String country=reg.getCountry();

String cb=reg.getCb();

String addr=reg.getAddr();

ModelAndView mv = new ModelAndView(getSuccessView());

mv.addObject("uname",uname);

mv.addObject("fname",fname);

mv.addObject("lname",lname);

mv.addObject("gender",gender);

mv.addObject("country",country);

mv.addObject("cb",cb);

mv.addObject("addr",addr);

return mv;

}

}

7,创建一个registrationValidator.java文件来验证诸如用户名和密码之类的表单字段不能为空.DispatcherServlet负责赋予属性以将Validator添加到用户请求并执行验证。

registrationValidator.java

import org.springframework.validation.Errors;

import org.springframework.validation.Validator;

public class registrationValidator implements Validator

{

public boolean supports(Class cl) {

return Registration.class.isAssignableFrom(cl);

}

public void validate(Object ob, Errors errors) {

Registration reg=(Registration)ob;

if (reg.getUsername() == null || reg.getUsername().length() == 0) {

errors.rejectValue("username", "error.empty.username");

}

else if (reg.getPassword() == null || reg.getPassword().length() == 0) {

errors.rejectValue("password", "error.empty.password");

}

}

}

8,创建或修改 messages.properties 文件,其中包含各自键值的消息,在此文件中,我们为两个键值编写消息,分别为空用户名和空密码。

messages.properties

error.empty.username=Please Enter User name

error.empty.password=Please Enter Password

9,构建并运行应用程序

输出

访问页面:http://localhost:8080/Registration/index.html

清空密码时,使用spring错误标签显示相应的错误消息。

只有在正确验证用户名和密码后,我们才能提交表单。

显示输出,其中包含所有提交注册的值

原文使用的较早的Spring版本(<3),更新后的源码放在 https://github.com/yujiaao/sp... 供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值