说明:示例基于Spring MVC 4.1.6。
以下示例显示如何使用Spring Web MVC框架在表单中使用多个复选框。首先,让我们使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态窗体的Web应用程序:
步骤描述
1
创建一个名为HelloWeb的项目,在一个包com.tutorialspoint下,如Spring MVC - Hello World Example章节所述。
2
在com.tutorialspoint包下创建一个Java类User,UserController。
3
在jsp子文件夹下创建一个视图文件user.jsp,users.jsp。
4
最后一步是创建所有源和配置文件的内容并导出应用程序,如下所述。
User.java
packagecom.tutorialspoint;public classUser {privateString username;privateString password;privateString address;private booleanreceivePaper;privateString [] favoriteFrameworks;publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}publicString getAddress() {returnaddress;
}public voidsetAddress(String address) {this.address =address;
}public booleanisReceivePaper() {returnreceivePaper;
}public void setReceivePaper(booleanreceivePaper) {this.receivePaper =receivePaper;
}publicString[] getFavoriteFrameworks() {returnfavoriteFrameworks;
}public voidsetFavoriteFrameworks(String[] favoriteFrameworks) {this.favoriteFrameworks =favoriteFrameworks;
}
}
UserController.java
packagecom.tutorialspoint;importjava.util.ArrayList;importjava.util.List;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.ModelAttribute;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.ui.ModelMap;
@Controllerpublic classUserController {
@RequestMapping(value= "/user", method =RequestMethod.GET)publicModelAndView user() {
User user= newUser();
user.setFavoriteFrameworks((new String []{"Spring MVC","Struts 2"}));
ModelAndView modelAndView= new ModelAndView("user", "command", user);returnmodelAndView;
}
@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());return "users";
}
@ModelAttribute("webFrameworkList")public ListgetWebFrameworkList()
{
List webFrameworkList = new ArrayList();
webFrameworkList.add("Spring MVC");
webFrameworkList.add("Struts 1");
webFrameworkList.add("Struts 2");
webFrameworkList.add("Apache Wicket");returnwebFrameworkList;
}
}
这里第一个服务方法user(),我们已经通过名为“command”的ModelAndView对象中传递了一个空的User对象,因为如果您在JSP中使用
标签,Spring框架将期望一个名为“command”的对象文件。所以当user()方法被调用时,它返回user.jsp视图。将在HelloWeb/addUser URL上针对POST方法调用第二个服务方法addUser()。您将根据提交的信息准备您的模型对象。最后,将从服务方法返回“user”视图,这将导致渲染users.jsp
user.jsp
Spring MVC Form HandlingUser Name | |
Age | |
Address | |
Subscribe Newsletter | |
Favorite Web Frameworks |
这里我们使用标签来呈现HTML复选框。例如
它将呈现以下HTML内容。
Spring MVC
Struts 1
Struts 2
Apache Wicket
users.jsp
Spring MVC Form HandlingUsername | ${username} |
Password | ${password} |
Address | ${address} |
Subscribed to Newsletter | ${receivePaper} |
Favorite Web Frameworks | out.println(framework); }%> |
完成创建源和配置文件后,导出应用程序。右键单击应用程序并使用Export->WAR File选项,并将您的HelloWeb.war文件保存在Tomcat的webapps文件夹中。
现在启动您的Tomcat服务器,并确保您可以使用标准浏览器从webapps文件夹访问其他网页。现在尝试URL http://localhost:8080/HelloWeb/user,如果您的Spring Web应用程序的一切都很好,您应该会看到以下结果:
提交所需信息后,点击提交按钮提交表单。如果您的Spring Web应用程序的一切都很好,您应该会看到以下结果:
Maven示例: