安徽和住房建设厅网站,重庆森林经典台词罐头,承德网站,wordpress 登录 手机版很难想象现代Web应用程序中没有表单复选框的情况。 在之前的一篇文章中#xff0c;我写了有关Spring MVC中的表单处理的文章 #xff0c;作为本系列文章的续篇#xff0c;我将写有关Spring MVC表单的文章#xff0c;尤其是关于复选框处理的文章 。 这篇文章将介绍标签的标准… 很难想象现代Web应用程序中没有表单复选框的情况。 在之前的一篇文章中我写了有关Spring MVC中的表单处理的文章 作为本系列文章的续篇我将写有关Spring MVC表单的文章尤其是关于复选框处理的文章 。 这篇文章将介绍标签的标准用法。 在以下情况下我将检查复选框标记用法的三种情况 Chekbox是布尔值 Chekbox是一个字符串值 复选框组代表字符串数组 因此您可以看到这三点很简单但是需要开发人员方面的注意。 下面我将描述如何实现这些情况您可以在文章末尾下载源代码。 复选框布尔值 对于第一种情况我将使用以下域模型 public class Hobby {private boolean hobbyExists;public boolean isHobbyExists() {return hobbyExists;}public void setHobbyExists(boolean hobbyExists) {this.hobbyExists hobbyExists;}} 此类不需要任何解释因为它是带有getter和setter的简单bean。 现在我可以向您展示这种情况的视图 %taglib urihttp://www.springframework.org/tags/form prefixform%
...
h1Hobby page/h1
form:form methodPOST commandnamehobby actionhobby-result.html
tabletbodytrtdIs any hobby: /tdtdform:checkbox pathhobbyExists/form:checkbox/td/trtrtd colspan2input valueSubmit typesubmit/td/tr
/tbody/table
/form:form
... 注意使用Spring表单标签意味着导入了适当的标签库。 复选框标签包含与域模型的属性相对应的属性路径 。 结果将显示在另一页上 ...
h1Hobby result page/h1
Is any hobby? - ${hobby.hobbyExists} br /
... 最后我需要为所有这些东西声明一个控制器 Controller
public class HobbyController {RequestMapping(value/hobby-page)public ModelAndView hobbyFormPage() {return new ModelAndView(hobby-form, hobby, new Hobby());}RequestMapping(value/hobby-result)public ModelAndView processHobby(ModelAttribute Hobby hobby) {ModelAndView modelAndView new ModelAndView(hobby-result);modelAndView.addObject(hobby, hobby);return modelAndView;}}复选框字符串 第二种情况将通过以下域模型进行解释 public class JobOffer {private String parking;public String getParking() {return parking;}public void setParking(String parking) {this.parking parking;}} 这种情况的观点与前一种观点略有不同 ...
h1Job Offer page/h1form:form methodPOST commandnamejob actionjob-result.htmltabletbodytrtdJob with parking? - /tdtdform:checkbox pathparking valueparking //td/trtrtd colspan2input typesubmit valueSubmit //td/tr/tbody/table /form:form
... 注意新属性出现在复选框标签中。 value属性表示域模型中的字符串属性。 结果将显示在另一页上 ...h1Job result page/h1c:choosec:when test${job.parking ! null}You want job with ${job.parking}/c:whenc:otherwiseYou want job without parking/c:otherwise/c:choose
... 这个例子的控制器 Controller
public class JobController {RequestMapping(value/job-page)public ModelAndView jobOfferPage() { return new ModelAndView(job-form, job, new JobOffer());}RequestMapping(value/job-result)public ModelAndView processJob(ModelAttribute JobOffer jobOffer) {ModelAndView modelAndView new ModelAndView(job-result);modelAndView.addObject(job, jobOffer);return modelAndView;}
}复选框字符串数组 本教程的最后一种情况将描述如何将字符串数组绑定到域模型中的属性。 以相同的方式您可以绑定java.util.Collection的值。 因此域模型将如下所示 public class Food {private String[] favoriteFruit;public String[] getFavoriteFruit() {return favoriteFruit;}public void setFavoriteFruit(String[] favoriteFruit) {this.favoriteFruit favoriteFruit;}
} 具有以下形式的页面 ...
h1Fruit page/h1form:form methodPOST commandnamefood actionfood-result.htmltabletbodytrtdApple /tdtdform:checkbox pathfavoriteFruit valueapple //td/trtrtdOrange /tdtdform:checkbox pathfavoriteFruit valueorange //td/trtrtdBanana /tdtdform:checkbox pathfavoriteFruit valuebanana //td/trtrtd colspan2input typesubmit valueSubmit //td/tr/tbody/table /form:form
... 在处理过程中复选框标记中的值将传递到字符串数组。 结果页面 ...
h1Food result page/h1
You prefer:
br /c:foreach varfruit items${food.favoriteFruit}${fruit}br //c:foreach
... 最后一种情况的控制器 Controller
public class FoodController {RequestMapping(value/food-page)public ModelAndView foodPage() { return new ModelAndView(food-form, food, new Food());}RequestMapping(value/food-result)public ModelAndView processFuits(ModelAttribute Food food) {ModelAndView modelAndView new ModelAndView(food-result);modelAndView.addObject(food, food);return modelAndView;}}复选框标签功能 呈现带有表单的页面时您可以打开其源代码并看到类似以下内容的内容 ...
input idfavoriteFruit1 namefavoriteFruit typecheckbox valueapple /
input typehidden name_favoriteFruit valueon /
... 奇怪附加输入从哪里出现 官方文档解释了这一事实 如果未选中HTML页面中的复选框则在提交表单后其值将不会作为HTTP请求参数的一部分发送到服务器因此我们需要针对HTML中的这个问题的变通办法以便进行Spring表单数据绑定上班。 checkbox标记遵循现有的Spring约定其中为每个复选框包括一个带有下划线_前缀的隐藏参数。 通过这样做您可以有效地告诉Spring“该复选框在表单中可见并且我希望与表单数据绑定到的我的对象无论如何都将反映该复选框的状态”。 摘要 本文为您提供了有关复选框标记用法的高级概述但这只是基础。 在最近的文章中我将向您展示Spring MVC中复选框使用的更多有趣情况。 您可以单击链接下载整个应用程序的源代码。 参考 Spring MVC表单处理卷。 2 – Fruzenshtein的便笺博客中来自JCG合作伙伴 Alexey Zvolinskiy的复选框处理 。 翻译自: https://www.javacodegeeks.com/2013/05/spring-mvc-form-handling-vol-2-checkbox-processing.html