对画面上的明细表示,我是在form中用一个arrayList来存放相关的dto数据,其中dto中有一个String checkbox来存放数据选中的情况,在画面的相关表示是<nested:iterate property="arrayList"><nested:checkbox property="checkbox"></nested:iterate>,在struts-config中将request-scope设为session,想利用struts的嵌套取值赋值来处理,结果发现如果checkbox是选中的,那么嵌套赋值会将arrayList中相关的dto中的checkbox的值设为"on",但是对于没选中的值没任何处理,这样就出现了一个很大的问题.
是什么问题呢?因为我做的这个页面是要支持分页的,现在我在第一页选中了两条记录,然后到第二页,然后回到第一页,发现第一页选中的两条记录还是选中状态,这样是对的,但是如果我把其中一条选中的变成不选中,到第二页,然后又回到第一页,你就会发现还是两条记录是选中的,其实应该只要一条是选中的,这就是因为nested:checkbox标签没对非选中的记录做任何处理,没把以前的选中状态保存的值清除。这个是个很大的问题了,会导致不应该删除的数据被删除了。
如果是按我以前的做法,是通过一个javascript函数循环判断选中情况,然后传一个数组到form中,再循环对dto的checkbox值处理,这样做就比较麻烦,要修改的地方就很多,要在jsp,java文件中加比较多的代码。我这个人也比较懒,还是想利用struts的嵌套赋值,就是想办法让画面上checkbox的值,不论是否选中都能给dto中的checkbox值赋值。我就在jsp上把原来的<nested:iterate property="arrayList"><nested:checkbox property="checkbox"></nested:iterate>改写成<nested:iterate property="arrayList"><input type="checkbox" name="xxx" onclick="改变相应隐藏变量的值"><nested:hidden property="checkbox"></nested:iterate>,onclick="改变相应隐藏变量的值"是通过一个javascrpt函数判断checkbox的状态来设置隐藏变量checkbox的值,选中值就是"on",去掉选中就是"off",这样通过设置隐藏变量再加一小段javascript代码这样就可以达到目的了。
经过测试,效果完全达到
分享到:
- 2006-10-31 23:06
- 浏览 4544
- 评论(2)
- 论坛回复 / 浏览 (2 / 5538)
- 查看更多
相关推荐
本压缩包文件包含了关于Struts标签的详细解释和源码,非常适合学习和参考。 1. **HTML标签**: HTML标签主要用于生成常见的HTML元素,如表单元素(`<html:form>`)、文本输入(`<html:text>`)、复选框(`<html:...
Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:Bean Tags、HTML Tags、Logic Tags、Nested Tags 和 Tiles Tags。下面将对前三个标签库中的标签进行详细的介绍。 Bean Tags Bean Tags...
使用Struts标签,可以提高代码的可读性和可维护性,同时也提高了开发效率。 二、Struts的HTML标签库 1. `html`标签库:这是Struts中最基础的标签库,主要用于创建HTML表单元素。例如,`<html:text>`标签用于创建...
根据提供的文件信息,可以看出本文主要关注的是JSP Struts框架中的HTML标签库的使用与解析。Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于简化Web应用程序的开发过程。其中,HTML标签...
通过使用Struts框架,开发者可以更加高效地构建出结构清晰、易于维护的Web应用。Struts的核心优势在于其提供了丰富的标签库,使得前端的开发变得更加简洁高效。 #### 二、Struts标签库概述 Struts提供的标签库主要...
Struts标签是Apache Struts框架提供的用于简化JSP页面开发的组件,它们极大地提高了开发效率,使得开发者可以更专注于业务逻辑而不是页面展示的细节。...深入理解和熟练使用这些标签是成为一名高效Struts开发者的关键。
**Nested标签库**增强了对其他Struts标签的嵌套使用能力,这在处理复杂页面结构时非常有用。 **Tiles标签库**则是为了创建复合式的网页,允许开发者将多个组件组合成一个完整的页面,提高了页面布局的灵活性和可...
- `<html:checkbox>` 和 `<html:radio>`: 创建复选框和单选按钮,通常与数组或集合属性配合使用。 - `<html:select>`、`<html:option>` 和 `<html:optionsCollection>`: 用于创建下拉列表,可以绑定到ActionForm的...
5. `nested`标签库:扩展了Struts的标签,使它们能够更好地处理复杂的嵌套对象结构,如`<nested:property>`。 6. `xhtml`和`css`标签库:这些标签库提供了与XHTML和CSS兼容的元素,有助于创建符合标准的页面。 在...
Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:Bean Tags、HTML Tags、Logic Tags、Nested Tags 和 Tiles Tags。本篇指南主要介绍前三个标签库中的标签。 Bean Tags Bean Tags 库...
Nested标签库用于增强其他Struts标签的嵌套使用能力。例如,可以通过`<nested:use>`标签来引用其他标签中的属性值。 #### 七、Struts标签的通用属性 Struts标签库中的所有标签都支持以下通用属性: - `id`:用于...
在编写JSP页面时,虽然可以使用scriptlet(Java代码片段),但Struts1标签设计的目标是减少或避免使用scriptlet,以提高可维护性和可读性。正确的使用方式是提供完整的表达式,例如在`<html:link>`标签中,应确保...
Struts1标签手册是关于Apache Struts框架中用于构建Web应用程序的标签库的详细文档,主要包括五类标签库:HTML, Nested, Logic, Bean, 和 Titles。这些标签库提供了丰富的功能,简化了开发者的工作,使得在Java环境...
4. **Nested Tags**:这个库是在前三个库基础上扩展的,它支持标签之间的嵌套,使得在复杂页面结构中使用Struts标签更加灵活。 5. **Tiles Tags**:Tiles标签库是用于创建可重用的页面布局组件。它允许开发者定义和...
以下是一段使用Struts2核心标签的表单代码示例: ```xml <html:form action="/user"> 用户名: <html:text property="user.username"/> 密码: <html:password property="user.pwd"/> 性别: <html:radio property...
例如,`<html:form>` 创建表单,`<html:text>` 用于文本输入,`<html:checkbox>` 用于创建复选框,`<html:radio>` 用于创建单选按钮,`<html:select>` 用于下拉列表等。使用这些标签时,需要在 `web.xml` 文件中包含...
Struts是一个著名的Apache Jakarta项目,它的目标是为Java Web应用程序的开发提供一个强大的框架。...对于更深入的了解,可以参考Struts的官方用户指南,那里包含了Nested和Tiles标签库的详细信息。
这篇文档详细介绍了Struts1标签库的主要内容,旨在帮助初学者快速掌握这些标签的使用。 首先,Bean Tags库包含的标签主要用于创建和操作bean,以及访问bean的属性。`<bean:cookie>`标签可以从HTTP请求中获取指定...
在使用Struts1标签时,应避免使用scriptlet,尽管它们的表达式仍然可以在Struts标签中使用。确保表达式完整,如正确的`<html:link>`标签写法。 Struts1的标签设计旨在提高可读性和可维护性,减少JSP页面中的Java...