以下示例显示如何在使用Spring Web MVC框架的表单中使用列表框(Listbox)。首先使用Eclipse IDE来创建一个WEB工程,实现一个让用户可选择自己所善长的技术(多选)的功能。并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序:

  1. 创建一个名称为 Listbox 的动态WEB项目。
  2. 在 com.yiibai.springmvc 包下创建两个Java类UserUserController
  3. jsp子文件夹下创建两个视图文件:user.jspuserlist.jsp
  4. 最后一步是创建所有源和配置文件的内容并运行应用程序,详细如下所述。

完整的项目文件目录结构如下所示 -

User.java 的代码如下所示 -

package com.yiibai.springmvc;
public class User { private String username;
private String password;
private String address;
private boolean receivePaper;
private String [] favoriteFrameworks;
private String gender;
private String favoriteNumber;
private String country;
private String [] skills; public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public boolean isReceivePaper() {
return receivePaper;
}
public void setReceivePaper(boolean receivePaper) {
this.receivePaper = receivePaper;
}
public String[] getFavoriteFrameworks() {
return favoriteFrameworks;
}
public void setFavoriteFrameworks(String[] favoriteFrameworks) {
this.favoriteFrameworks = favoriteFrameworks;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getFavoriteNumber() {
return favoriteNumber;
}
public void setFavoriteNumber(String favoriteNumber) {
this.favoriteNumber = favoriteNumber;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String[] getSkills() {
return skills;
}
public void setSkills(String[] skills) {
this.skills = skills;
}
}
Java

UserController.java 的代码如下所示 -

package com.yiibai.springmvc;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.ui.ModelMap; @Controller
public class UserController { @RequestMapping(value = "/user", method = RequestMethod.GET)
public ModelAndView user() {
User user = new User();
user.setFavoriteFrameworks((new String []{"Spring MVC","Struts 2"}));
user.setGender("M");
ModelAndView modelAndView = new ModelAndView("user", "command", user);
return modelAndView;
} @RequestMapping(value = "/addUser", method = RequestMethod.POST)
public String addUser(@ModelAttribute("SpringWeb")User user,
ModelMap model) {
model.addAttribute("username", user.getUsername());
model.addAttribute("password", user.getPassword());
model.addAttribute("address", user.getAddress());
model.addAttribute("receivePaper", user.isReceivePaper());
model.addAttribute("favoriteFrameworks", user.getFavoriteFrameworks());
model.addAttribute("gender", user.getGender());
model.addAttribute("favoriteNumber", user.getFavoriteNumber());
model.addAttribute("country", user.getCountry());
model.addAttribute("skills", user.getSkills());
return "userlist";
} @ModelAttribute("webFrameworkList")
public List<String> getWebFrameworkList()
{
List<String> webFrameworkList = new ArrayList<String>();
webFrameworkList.add("Spring MVC");
webFrameworkList.add("Struts 1");
webFrameworkList.add("Struts 2");
webFrameworkList.add("Apache Hadoop");
return webFrameworkList;
} @ModelAttribute("numbersList")
public List<String> getNumbersList()
{
List<String> numbersList = new ArrayList<String>();
numbersList.add("1");
numbersList.add("2");
numbersList.add("3");
numbersList.add("4");
return numbersList;
} @ModelAttribute("countryList")
public Map<String, String> getCountryList()
{
Map<String, String> countryList = new HashMap<String, String>();
countryList.put("US", "United States");
countryList.put("CH", "China");
countryList.put("SG", "Singapore");
countryList.put("MY", "Malaysia");
return countryList;
} @ModelAttribute("skillsList")
public Map<String, String> getSkillsList()
{
Map<String, String> skillList = new HashMap<String, String>();
skillList.put("Hibernate", "Hibernate");
skillList.put("Spring", "Spring");
skillList.put("Apache Hadoop", "Apache Hadoop");
skillList.put("Struts", "Struts");
return skillList;
}
}
Java

这里的第一个服务方法user(),我们已经在ModelAndView对象中传递了一个名称为“command”的空User对象,因为如果在JSP文件中使用<form:form>标签,spring框架需要一个名称为“command”的对象。 所以当调用user()方法时,它返回user.jsp视图。

第二个服务方法addUser()将根据URL => Listbox/addUser 上的POST方法请求时调用。根据提交的信息准备模型对象。 最后从服务方法返回“userlist”视图,这将呈现userlist.jsp视图。

user.jsp 的代码如下所示 -

<%@ page contentType="text/html; charset=UTF-8"%>

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表单处理(列表框)</title>
</head>
<body> <h2>用户信息</h2>
<form:form method="POST" action="/Listbox/addUser">
<table>
<tr>
<td><form:label path="username">用户名:</form:label></td>
<td><form:input path="username" /></td>
</tr>
<tr>
<td><form:label path="password">密码:</form:label></td>
<td><form:password path="password" /></td>
</tr>
<tr>
<td><form:label path="address">地址:</form:label></td>
<td><form:textarea path="address" rows="5" cols="30" /></td>
</tr>
<tr>
<td><form:label path="receivePaper">是否订阅:</form:label></td>
<td><form:checkbox path="receivePaper" /></td>
</tr>
<tr>
<td><form:label path="favoriteFrameworks">喜欢的框架/技术:</form:label></td>
<td><form:checkboxes items="${webFrameworkList}"
path="favoriteFrameworks" /></td>
</tr>
<tr>
<td><form:label path="gender">性别:</form:label></td>
<td><form:radiobutton path="gender" value="M" label="男" /> <form:radiobutton
path="gender" value="F" label="女" /></td>
</tr>
<tr>
<td><form:label path="favoriteNumber">喜欢的数字:</form:label></td>
<td><form:radiobuttons path="favoriteNumber"
items="${numbersList}" /></td>
</tr>
<tr>
<td><form:label path="country">所在国家:</form:label></td>
<td><form:select path="country">
<form:option value="NONE" label="请选择..." />
<form:options items="${countryList}" />
</form:select></td>
</tr>
<tr>
<td><form:label path="skills">技术:</form:label></td>
<td><form:select path="skills" items="${skillsList}"
multiple="true" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交" /></td>
</tr>
</table>
</form:form>
</body>
</html>
HTML

这里使用<form:select /> 及其属性 multiple=true标签来呈现HTML列表多选框。 例如 -

<form:select path="skills" items="${skillsList}" multiple="true" />
HTML

它将呈现以下HTML内容。

<select id="skills" name="skills" multiple="multiple">
<option value="Struts">Struts</option>
<option value="Hibernate">Hibernate</option>
<option value="Apache Wicket">Apache Hadoop</option>
<option value="Spring">Spring</option>
</select>
<input type="hidden" name="_skills" value="1"/>
HTML

userlist.jsp 的代码如下所示 -

<%@ page contentType="text/html; charset=UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC表单处理(列表框)</title>
</head>
<body> <h2>提交用户信息 -</h2>
<table>
<tr>
<td>用户名:</td>
<td>${username}</td>
</tr>
<tr>
<td>密码:</td>
<td>${password}</td>
</tr>
<tr>
<td>地址:</td>
<td>${address}</td>
</tr>
<tr>
<td>是否订阅:</td>
<td>${receivePaper}</td>
</tr>
<tr>
<td>喜欢的技术/框架:</td>
<td>
<%
String[] favoriteFrameworks = (String[]) request.getAttribute("favoriteFrameworks");
for (String framework : favoriteFrameworks) {
out.println(framework);
}
%>
</td>
</tr>
<tr>
<td>性别:</td>
<td>${(gender=="M"? "男" : "女")}</td>
</tr>
<tr>
<td>喜欢的数字:</td>
<td>${favoriteNumber}</td>
</tr>
<tr>
<td>国家:</td>
<td>${country}</td>
</tr>
<tr>
<td>技术:</td>
<td>
<%
String[] skills = (String[]) request.getAttribute("skills");
for (String skill : skills) {
out.println(skill);
}
%>
</td>
</tr> </table>
</body>
</html>
HTML

完成创建源和配置文件后,发布应用程序到Tomcat服务器。

现在启动Tomcat服务器,现在尝试访问URL => http://localhost:8080/Listbox/user ,如果Spring Web应用程序没有问题,应该看到以下结果:

提交所需信息后,点击提交按钮提交表单。 如果Spring Web应用程序没有问题,应该看到以下结果:

Spring MVC列表多选框的更多相关文章

  1. spring mvc:复选框(多选)

    以user为例,user下有 username用户,password密码, address地址, receivePaper是否订阅, favotireFramework兴趣爱好, user.java ...

  2. JQuery实现列表中复选框全选反选功能封装

    我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如: 我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的 ...

  3. 20151215单选按钮列表,复选框列表:CheckBoxList

    单选框:RadioButton GroupName:组名,如果要实现单选效果每个单选按钮的组名必须一样 是否被选中 RadioButton.checked 单选按钮列表:RadioButtonList ...

  4. spring mvc 建立下拉框并进行验证demo

    原文出处:http://howtodoinjava.com/spring/spring-mvc/spring-mvc-populate-and-validate-dropdown-example/ 该 ...

  5. spring mvc:常用标签库(文本框,密码框,文本域,复选框,单选按钮,下拉框隐藏于,上传文件等)

    在jsp页面需要引入:<%@taglib uri="http://www.springframework.org/tags/form" prefix="form&q ...

  6. Spring MVC复选框(多项)

    以下示例显示如何在使用Spring Web MVC框架的表单中使用多个复选框(Checkbox).首先使用Eclipse IDE来创建一个WEB工程,并按照以下步骤使用Spring Web Frame ...

  7. Spring MVC复选框

    以下示例显示如何在使用Spring Web MVC框架的表单中使用复选框(Checkbox).首先使用Eclipse IDE来创建一个WEB工程,并按照以下步骤使用Spring Web Framewo ...

  8. Spring MVC-表单(Form)标签-复选框集合(Checkboxes)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_checkboxes.htm 说明:示例基于Spring MVC 4.1.6. 以 ...

  9. Spring MVC-表单(Form)标签-复选框(Checkbox)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_checkbox.htm 说明:示例基于Spring MVC 4.1.6. 以下示 ...

随机推荐

  1. 推荐10个免费的HTML编辑器

    如果你想开发一个网站,你肯定想要一个很棒的HTML编辑器,一个好的编辑器可以让代码更加整齐格式化,前端显示也会更好,从而提升你的工作效率.下面就为开发者推荐10个免费的HTML编辑器,你可以尝试使用. ...

  2. 简单php连接数据库作操作

    1.近期稳定版本 <?php header('Content-Type: application/json'); $output = []; $host = ''; //MySQL服务器地址 $ ...

  3. 数组中的push()和pop()方法

    push()方法可以接受任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度. pop()方法是从数组末尾移除最后一项,减小数组的length值,然后返回移除的项. var arr = [ ...

  4. ylbtech-memorandum(备忘录)-数据库设计

    ylbtech-DatabaseDesgin:ylbtech-memorandum(备忘录)-数据库设计 -- ============================================ ...

  5. 详解Python中的生成器表达式(generator expression)

    介绍 1.生成器表达式(generator expression)也叫生成器推导式或生成器解析式,用法与列表推导式非常相似,在形式上生成器推导式使用圆括号(parentheses)作为定界符,而不是列 ...

  6. Laravel 5系列教程四:数据库和Eloquent

    免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇写了一些Laravel Blade的基本用法和给视图传递变量的几种方式, 这一节我们来说说 ...

  7. tomcat进阶操作

      1.使用war包部署web站点 [root@tomcat webapps]# pwd /application/tomcat/webapps [root@tomcat webapps]# rz   ...

  8. virtualBox安装centos7并配置nginx php mysql运行环境

    virtualBox安装centos7并配置nginx php mysql运行环境 一:virtualBox安装centos7并进行基础设置 1.下载dvd.iso安装文件,下载地址:https:// ...

  9. Eclipse+Maven远程部署项目到Tomcat中

    使用maven的自动部署功能可以很方便的将maven工程自动打包并且部署到远程tomcat服务器,省去一些繁琐的操作,节省大量时间. 我使用的tomcat版本是8.5,tomcat7和tomcat8都 ...

  10. oracle调优 浅析有效的游标管理

    浅析有效的游标管理 [思路分析] 能够把游标理解成共享的运行计划,当sql不被共享时.常规的解决思路有两个方向: 1.调整共享池的尺寸(共享池的库缓存区中共享运行计划): 2.sql书写时尽量重用绑定 ...