`
kingxss
  • 浏览: 972026 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2前端JSP中对List的取值和赋值

阅读更多

      这里以'景点+门票类型'的用例为示例,其对应关系为1-N,在数据库中门票类型表包含了对应门票的外键。使用Hibernate的的级联操作从数据库中取出的景点对象scenery,scenery对象包含门票类型列表(List类型)tbSceneryTickets。景点的hbm文件的有如下的one-to-many设置:

<!-- 这里需要Parent一端设置inverse="true" cascade="all"-->  
<list name="tbSceneryTickets" lazy="false" inverse="true" cascade="all">  
	<key><column name="SCENERY_ID" /></key>  
	<index column="ID" type="java.lang.String" />  
	<one-to-many class="TbSceneryTickets" />  
</list>  

需要注意的是这里通过index属性设置了List的索引为门票类型的ID(所以这里需要设置其主键ID为数字)。

 

      在JSP中取得tbSceneryTickets中每个对象的值时候,使用struts2的iterator标签,通过OGNL表达可以设置其value属性的值为“scenery.tbSceneryTickets”,通过设置其id属性来标识每个对象,代码如下:

<s:iterator value="scenery.tbSceneryTickets" id="h">
<s:if test="#h != null">
<tr id="oldTicket<s:property value='#h.id'/>">
	<td>
	门票类型:<input type="text" name="scenery.tbSceneryTickets[<s:property value='#h.id'/>].typeName" 
	class="input" value='<s:property value="typeName"/>' />
	</td>
	<td>
	门票价格:<input type="text" name="scenery.tbSceneryTickets[<s:property value='#h.id'/>].price" 
	class="input" value='<s:property value="price"/>' />
	</td>
</tr>
</s:if>
</s:iterator>

       在取得tbSceneryTickets中每个门票类型对象的值的时候,可以将其索引和属性作为页面标签的name属性值,如门票类型值:

<input type="text" name="scenery.tbSceneryTickets[<s:property value='#h.id'/>].typeName" 

      这里注意的是索引的取法,这里的#h.id对应的是List中该门票类型对象的索引值,同时也是该门票类型对象在数据库中的主键值。所以修改提交时,Struts2通过ONGL表达式将每个门票类型对象的属性更新到服务器端的tbSceneryTickets列表中,由于存在hibernate的映射和级联设置,也可以顺利的更新到数据库中。

 

 

       如果这时有新的门票类型在修改景点对象的时候插入,可用的策略是在浏览器端用JavaScript来控制输入框的添加,并且维持一个唯一的索引,代码如下(代码中的索引i为大于0的动态数值):

门票类型:<input type="text" name="newSceneryTickets[i].typeName" />

      在服务器端维持一个名为newSceneryTickets的门票类型的List,前段提交后,Struts2通过ONGL表达式将每个新增的门票类型对象存入到服务器端的newSceneryTickets列表中,然后在将newSceneryTickets的中的每个门票类型对象存入tbSceneryTickets列表中,到由于存在hibernate的映射和级联设置,也可以顺利的插入到数据库中,并且自动建立新增门票类型对象和景点对象的对对应关系。

 

分享到:
评论

相关推荐

    struts2+JSP

    Struts2和JSP是两种在Java Web开发中广泛使用的技术。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,它主要用于构建和维护可扩展的、易于测试的Web应用程序。而JSP(JavaServer Pages)是一种...

    struts2 配置JSP时需要的jar

    2. **JSP和Struts2的集成**:在JSP页面中,我们可以通过`&lt;s:form&gt;`、`&lt;s:textfield&gt;`等Struts2标签库来创建表单和输入字段,实现与Action的交互。这需要`struts2-jsp-plugin.jar`,它包含了JSP标签库的实现。 3. **...

    struts2中jsp和freemarker模板视图的案例

    在这个“struts2中jsp和freemarker模板视图的案例”中,我们将深入理解如何使用这两种不同的视图技术与Struts2框架进行集成。 首先,我们来看JSP(JavaServer Pages)作为视图的实现。JSP是Java中的动态网页技术,...

    学校宿舍管理系统(Struts2+JSP+DAO)

    【学校宿舍管理系统(Struts2+JSP+DAO)】是一个典型的Web应用程序,它结合了Struts2框架、JavaServer Pages(JSP)以及Data Access Object(DAO)模式,旨在高效地管理和维护学校的宿舍资源。这个系统的核心是通过...

    struts2+jdbc+jsp增删改查

    Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建Java Web应用程序。在本项目"struts2+jdbc+jsp增删改...通过实践这样的项目,开发者能够深入理解如何在实际应用中整合Struts2、JDBC和JSP,提升自己的技能。

    struts2和jspServlet上传

    Struts2和JSP Servlet上传是Web开发中的常见场景,主要涉及如何在用户提交表单时处理文件上传请求。这两个技术都是Java Web开发的重要组成部分,Struts2是一个基于MVC设计模式的开源框架,而Servlet是Java EE规范的...

    客户管理系统案例<Struts2+JSP+MySQL>

    这个"客户管理系统案例&lt;Struts2+JSP+MySQL&gt;"为初学者提供了一个全面了解Web开发流程的机会,涵盖了从后端到前端、数据库设计到实际应用的各个环节。通过实践这个案例,开发者可以深入理解这三个技术的协同工作方式,...

    struts2+jsp 文件上传

    struts2+jsp 文件上传,供大家一起共同分享学习。

    jsp+struts2完整实例

    【标题】"jsp+struts2完整实例"揭示了这个项目是基于Java Web技术栈,主要使用了JSP(JavaServer Pages)和Struts2框架来实现一个完整的应用程序。Struts2是一个开源的MVC(Model-View-Controller)框架,它在Java ...

    ajax+struts2.0+jsp下拉列表级联

    通过研究这些文件,你可以深入理解如何将AJAX、Struts2和JSP结合,实现动态交互的Web应用。 总结来说,"ajax+struts2.0+jsp下拉列表级联"展示了如何利用现代Web技术提升用户体验。AJAX提供了无刷新的交互,Struts2...

    struts2 + jsp 简单通讯录

    综上所述,"struts2 + jsp 简单通讯录"项目涵盖了Web开发中常见的技术栈,包括前端展示、后端处理和数据存储,是学习和实践Web开发基础的一个好例子。开发者可以通过此项目了解如何将这些技术有效地结合起来,构建一...

    Struts2页面取值总结

    本文将深度解析Struts2框架中页面取值的多种方式及核心标签的使用技巧,帮助开发者更高效地进行页面与后台交互。 #### 页面取值的四种常见方法 1. **`&lt;s:property&gt;` 标签**: 此标签用于展示模型中的属性值。如`...

    struts2➕jsp宿舍管理系统

    本项目"struts2+jsp宿舍管理系统"便是这种技术实践的体现,它利用Struts2的控制层优势和JSP的视图功能,实现了对宿舍事务的有效管理。 首先,Struts2作为Java Web开发中的主流框架,其核心在于Action类和配置文件。...

    Java struts2 ongl 标签 jsp页面

    Java Struts2 OGNL(Object-Graph Navigation Language)标签是用于在JSP页面中动态地访问和操作Java对象的强大工具。以下是对这些知识点的详细解释: 1. **对象树的访问**: OGNL允许开发者通过点号(`.`)来遍历...

    jsp+struts2购物车

    在Web开发中,"jsp+struts2购物车"是一个常见的实战案例,它涉及到Java Web技术的多个层面,包括前端展示、后端业务处理以及数据库操作。这个项目是学习JSP(JavaServer Pages)和Struts2框架的理想实践,下面我们将...

    Struts2+JDBC+jsp+mysql 考勤系统

    Struts2+JDBC+jsp+mysql 构建的考勤...总结,Struts2+JDBC+jsp+mysql的考勤系统是结合了前端MVC框架、数据访问、动态页面和数据库存储的综合应用,它提供了一个高效、可扩展的解决方案,满足企业对员工考勤管理的需求。

    jsp+hibernate+struts2简单登录和注册

    **标题与描述解析** 标题"jsp+hibernate+struts2简单登录和注册"指出,这个项目是基于Java Web...通过学习这个项目,开发者可以深入了解JSP、Hibernate和Struts2如何协同工作,以及如何利用MySQL来存储和检索数据。

    博客后台管理系统(struts2 + jsp + mysql)

    博客后台管理系统是一个基于Struts2、JSP和MySQL技术实现的应用程序,主要用于管理博客网站的内容、用户和元数据。这个系统通常包含多个模块,如文章发布、用户管理、评论处理等,提供对博客数据的增删改查功能,...

    struts2迭代 Map List

    在这个场景下,我们关注的是如何在Struts2中迭代Map和List对象。这两种数据结构在Web开发中经常被用到,特别是在展示表单数据或动态渲染页面元素时。 首先,让我们深入了解`struts2-taglib`,这是一个包含Struts2...

    struts2各控件详细注册页面,后台可以取值。

    4. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在Action和JSP页面之间传递数据。在描述中提到的"后台获取传输的值",就是通过OGNL从请求参数中提取数据。 5. **...

Global site tag (gtag.js) - Google Analytics