`
- 浏览:
31581 次
- 性别:
- 来自:
邯郸
-
html中的checkbox标签有一个特殊的地方,如果一个checkbox未被选中,那么它将不会出现在请求参数中。比如如下的例子:
<form action="#">
<input type="checkbox" name="options" value="option1"/>
<input type="checkbox" name="options" value="option2"/>
<button type="submit">submit</button>
</form>
(补充说明:对于checkbox,如果没有显式地指明value值,那么它会有一个默认值“on”)
当我们同时选中option1和option2时,请求的URL是....?options=option1&options=option2,但是如果单独选择option1,url就会变成....?options=option1,option2的选择情况不会提交到后台。在struts2这种直接将请求参数绑定至后台数据项上的框架里,这会带来一些麻烦。如果我们想让一个option2对应到后台的boolean值,最初option2是选中的,后台对应数据值也是true,但是在当下的提交中,option2不再被勾选,但是提交的请求中却没有关于option2已不再被勾选的信息(比如给一个...$option2=off...之类的参数),这样后台option2对应的数据项就不会更新。因此,struts2的s:checkbox标签为了避免这一问题,在生成html片断的同时会生成一个隐藏域。(需要特别说明的是:struts2的s:checkbox标签和html中的checkbox是有本质区别的。s:checkbox是一种专门用来传递boolean类型数值的控件,它后台对应的数据项必须是一个boolean类型的值!因为它是通过生成html的checkbox形式来实现的,所以,它必须要生成一个隐藏域来确保当checkbox未被勾选时它能传递信息回后台。和html中的checkbox功能相类似的是s:checkboxlist,而不是s:checkbox)如:
<s:checkbox label="inStock" key="inStock"/>
将会生成如下html片断:
<input type="checkbox" name="inStock" value="true" id="ActionName_inStock"/>
<input type="hidden" name="__checkbox_inStock" value="true"/>
如果checkbox被选中,那么checkbox和隐藏域的值都会被提交。如果checkbox没被选中,隐藏域就起到了作用,它的值会提交到后台,拦截器检查发现只有隐藏域提交了,表明checkbox没有被选中,这样,拦截器会自动调用对应属性的setter并设为false。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Struts2框架中,`s:checkbox`标签用于创建复选框,但在实际使用过程中,用户可能会遇到显示效果不理想的问题。这个问题通常涉及到样式、布局或者与其他UI组件的兼容性。本文将深入探讨如何解决Struts2的`s:...
在这个场景中,我们关注的是`s:iterator`标签和`s:checkbox`的使用,它们是Struts 2 中视图层(JSP)的重要组件,用于迭代数据集合并呈现复选框。在Web应用中,用户经常需要进行全选和反选的操作,这通常在管理多个...
在Struts2的标签库中,`<s:checkboxlist>`标签主要用于创建多个复选框,每个复选框对应一个值。这个标签接受多个参数,如`list`(用于指定选项的集合)、`name`(用于指定表单字段名)和`label`(用于指定每个选项的...
在Struts2中,处理用户输入是常见的任务,而`checkboxlist`是用于展示一组可选复选框的组件。这篇博客讨论的是如何在Struts2中处理`checkboxlist`的换行问题,这在创建多列或美观的表单布局时非常有用。 `checkbox...
本文将详细介绍如何利用Struts的`<s:checkboxlist>` 标签实现默认选中某些选项以及如何在显示时自动换行。 #### 二、CheckboxBean实体类设计 为了更好地理解`<s:checkboxlist>` 标签的使用,我们首先定义一个简单...
要在JSP页面中使用Struts2的S标签,首先需要在页面顶部添加如下声明: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> ``` 这行代码的作用是将Struts2提供的标签库导入到当前JSP页面中,并指定前缀为“s”。...
在JSP页面中,我们使用`<s:checkboxlist>`标签来渲染复选框列表: ```jsp <s:checkboxlist name="appTypeIds" theme="simple" list="allCheckboxBeans" listKey="id" listValue="name" value=...
这些只是Struts 2 S标签库中的一部分,实际上还有许多其他标签,如`s:textfield`(文本字段)、`s:textarea`(文本区域)、`s:submit`(提交按钮)等等,它们极大地简化了MVC模式中的视图层开发。通过合理使用这些...
在Struts2中,`<s:checkbox>`标签通常与`name`属性一起使用,这个属性对应于Action类中的字段,用于接收用户的选中值。例如: ```jsp <s:checkbox name="interests" value="Java" label="Java"/> <s:checkbox name=...
`checkboxlist`是Struts2标签库中的一个组件,用于显示一组可选的复选框。在默认情况下,这些复选框通常是横向排列的。然而,在某些设计需求下,可能需要将这些复选框以竖向方式展示。本篇将详细解释如何在Struts2中...
<%@ taglib prefix="s" uri="/struts-tags" %> 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. <s:a href=""></s:a>-----超链接,类似于html里的<a></a> 3. <s:...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。
以上只是Struts2标签库的一部分,实际使用中还有更多标签如`<s:textfield>`(文本输入框)、`<s:textarea>`(文本区域)、`<s:submit>`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...
以上只是Struts2标签库中的一部分,实际上,还有更多如`s:actionerror`、`s:debug`、`s:include`等标签,它们各自承担着特定的任务,共同构建起强大的MVC框架。熟练掌握这些标签,能让你的Struts2应用更加高效、整洁...
Struts2是一个强大的Java EE应用程序框架,用于构建和维护可扩展、模块化和易于管理的Web应用程序。在Struts2中,标签库是其核心组件之一,极...学习并熟练掌握Struts2标签库的使用,是每个Java Web开发者必备的技能。
### Struts2 S 标签库详解 #### 引言 Struts2 是一款流行的 Java Web 开发框架,它提供了一系列强大的功能来帮助开发者构建健壮的 Web 应用程序。其中,Struts2 的标签库是其核心特性之一,为开发者提供了丰富的 ...
但Struts2的`<s:action>`提供了更高级的功能,比如可以通过name属性指定Action的名称,并且可以使用额外的参数来传递数据。 #### 2. `<s:actionerror>` 和 `<s:actionmessage>` - **`<s:actionerror>`**:用于显示...
`struts2标签用法.doc`和`标签详解`文件可能包含更深入的标签用法和实例,例如如何使用`s:form`创建表单,如何利用`s:action`执行Action,以及如何使用`s:debug`标签进行调试等。 5. **Struts2标签的高级用法** -...