四川省工程建设信息网站,可以直接进入的正能量网站老狼,免费网站建设ppt模板下载,网站快速排名案例✅作者简介#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者#xff0c;修心和技术同步精进。 #x1f34e;个人主页#xff1a;Java Fans的博客 #x1f34a;个人信条#xff1a;不迁怒#xff0c;不贰过。小知识#xff0c;大智慧。 #x1f49e;当前专栏… ✅作者简介2022年博客新星 第八。热爱国学的Java后端开发者修心和技术同步精进。 个人主页Java Fans的博客 个人信条不迁怒不贰过。小知识大智慧。 当前专栏SSM 框架从入门到精通 ✨特色专栏国学周更-心性养成之路 本文内容一文学会 Spring MVC 表单标签 文章目录form 标签input 标签password 标签checkbox 标签checkboxes 标签radiobutton 与 radiobuttons 标签select 与 option/options 标签使用Spring MVC提供的表单标签可以让JSP视图方便展示地Model中的数据特别适合修改现有记录数据的情形通常进行修改操作时原有数据要先展示出来再供用户重新选择或修改。使用表单标签能实现数据绑定让表单中的各个表单域中的name属性绑定到对象模型中来。JSP页面中要想使用SpringMVC自带标签库需要导入标签库在JSP文件开头声明如下
% taglib prefixform urihttp://www.springframework.org/tags/form % Spring的form标签能够自动绑定来自Model中的一个属性值到当前form对应的实体对象默认是command属性可以通过ModelAttribute重写默认属性这样就可以在form表单体里面方便的使用该对象的属性。Form标签下面又包含inputpasswordselect/option/optionscheckbox/checkboxsradiobuttonradiobuttons等等子标签。这些标签的基本介绍如下图所示。
form 标签 form 标签主要包括下表所示的多个属性
RequestMapping(detail/{id})
public ModelAndView detail (PathVariable int id){User myuseruserService.getUserById(id);ModelAndView mvnew ModelAndView();mv.addObject(user,myuser);System.out.println(userService..getUserById(id).getUsername());mv.setViewName(detail);return mv;
}该代码表示接收到 id 后调用业务层获取到该 id 号的 User 类的用户对象 myuser然后将 myuser 对象封装添加到 ModelAndView 中来键为“user”值为myuser 对象这样这个模型旧风装好了属性名称为 user 的键值对值为 myuser。然后进入 JSP 页面form 表单利用 commandName 与 modelAttribute 指定该模型的“user”属性名就可绑定该模型属性的值即 User 类的myuser 对象并把该模型属性的值 myuser 对象中的各个属性与 form 表单的各个子标签一一绑定。Form 表单中应用 commandName 绑定模型属性名称示例代码如下
form:form actionupdate methodpost commandNameuser
//省略纸标签
/form:form这样就把后台控制器方法中创建的对象传递过来在前台展示了。
input 标签 input标签用于展示控制器方法中封装的基本类型的Model数据。语法如下
form:input pathdomain的属性名其中path用于指定要绑定的属性比如上面案例中表单中指定了要绑定的对象为User类的myuser但要在表单中具体显示该对象的用户名username还需要这样做
form:form actionupdate methodpost commandNameuserform:input pathusername/
/form:form这样在表单绑定myuser对象的基础上进一步把该对象的username属性绑定到文本输入框中来。
password 标签 password标签用于填写密码有掩码。语法如下
form:password pathdomain的属性名/其path属性含义同上。上例中若还要展示用户的密码则代码如下所示:
form:form actionupdate methodpost commandNameuserform:input pathusername//brform:password pathpassword//br
/form:formcheckbox 标签 该标签的属性基本与input相同但另有一个label属性用于指定显示的得选框的值。
form:checkbox pathdomain的属性名 label复选框的值如果该属性名存在则默认已经选上。前台关键代码如下 myInterestingnew ArrayListString();myInteresting.add(美食);myInteresting.add(音乐); 前台关键代码如下则显示效果如图7.1所示。 form:checkbox pathmyInteresting value舞蹈 label舞蹈/form:checkbox pathmyInteresting value旅游 label旅游/form:checkbox pathmyInteresting value唱歌 label唱歌/form:checkbox pathmyInteresting value音乐 label音乐/form:checkbox pathmyInteresting value运动 label运动/form:checkbox pathmyInteresting value美食 label美食/显示效果如图所示 checkboxes 标签 checkboxes的基本语法如下
form:checkboxes items${Model中Collections的属性} pathdomain的属性名/checkboxes有几个重要属性如下表所示。 假定后台控制器方法中设置了一个集合allIntersting用于描述兴趣爱好其中包含了所有的兴趣爱好旅游音乐唱歌跳舞运动美食。但某一个人的兴趣可能只有其中若干项所以再定义一个集合myIntesting只含部分兴趣爱好。前台form表单需要把所有兴趣爱好以多选项的形式列出来对某一个人有的兴趣爱好则打上勾。后台代码如下 RequestMapping(/detail/{id})public ModelAndView detail(PathVariable int id){ ListString allInterestingnew ArrayListString();allInteresting.add(舞蹈);allInteresting.add(旅游);allInteresting.add(唱歌);allInteresting.add(音乐);allInteresting.add(运动);allInteresting.add(美食);UserService userServicenew UserService(); User useruserService.getUserById(id);ListString myInterestingnew ArrayListString();myInteresting.add(旅游);myInteresting.add(音乐);user.setMyInteresting(myInteresting);ModelAndView mvnew ModelAndView();mv.addObject(allInteresting, allInteresting);mv.addObject(user, user);mv.setViewName(detail);return mv;} 前台关键代码如下
form:checkboxes pathmyInteresting items${allInteresting}/最终结果如图所示 对于Map类型的Collection来说key值为标签的value值value值为标签的label值但是需要注意HashMap是乱序的
radiobutton 与 radiobuttons 标签 Radiobutton的语法如下
form:radiobutton pathdomain属性名 label”显示的值” value”值”/通常有多个然后若后台传来的domain属性名的值跟其中一个value的值相同则为选中。 Radiobuttons的语法如下
form:radiobuttons pathdomain属性值 items${传入的Collection}/其规则同checkboxes。如果后台传来的的domain属性名的值跟items集合中的其中一个value的值相同则为选中。后台代码
RequestMapping(/detail/{id})public ModelAndView detail(PathVariable int id){ ListString citiesnew ArrayListString();cities.add(北京);cities.add(上海);cities.add(广州);cities.add(深圳);String city深圳;UserService userServicenew UserService(); User useruserService.getUserById(id);user.setCity(city);user.setGender(true);ModelAndView mvnew ModelAndView();mv.addObject(cities, cities);mv.addObject(user, user);mv.setViewName(detail);return mv;
}前台代码如下 tr td性别:/tdtdform:radiobutton pathgender valuetrue label男/form:radiobutton pathgender valuefalse label女/ /td /trtr td所在城市1/tdtdform:radiobuttons pathcity items${cities}/br/ /td /tr 最终结果如图所示
select 与 option/options 标签 语法格式如下
form:select pathdomain的属性名
form:option value”值”显示的值/optionform:options items${Collections变量}/
/form:select其中items的使用同前。 前台代码同前后台代码如下 tr td所在城市2/tdtdform:select pathcity option请选择城市/optionform:option value北京北京/form:optionform:option value上海上海/form:optionform:option value广州广州/form:optionform:option value深圳深圳/form:option/form:select /td /trtr td所在城市3/tdtdform:select pathcity option请选择城市/optionform:options items${cities}/ /form:select /td /tr 效果如图所示 码文不易本篇文章就介绍到这里如果想要学习更多Java系列知识点击关注博主博主带你零基础学习Java知识。与此同时对于日常生活有困扰的朋友欢迎阅读我的第四栏目《国学周更—心性养成之路》学习技术的同时我们也注重了心性的养成。