在项目开发的很多时候,用户需要更友好,更容易理解的操作界面,而为了能够达到这种表现界面,struts标签显得力不从心,本人经过几个项目的开发当中 逐渐的摈弃了struts标签,而由JSTL来做为JSP页面的表达者。
struts标签之死穴一 不支持嵌套
看看这种常见的需求吧。一个用户隶属于一个职能部门,比如
项目要求 职能部门有五个(乱写的)
1、企划部
2、网络集成部
3、行政部
4、营销部
5、产品部
项目要求 一共有二个员工
1、张三 隶属于行政部
2、李四 隶属于营销部
而你想把张三和李四都列表出来,显示为如下:
姓名 部门名称
张三 行政部
李四 营销部
而且还需要用户的列表链接到修改页面当中(假如只修改部门)应该如何做呢。
在使用struts标签是很难做到的,除非你非常不在意内存的使用(乱写技术性代码)
看看JSTL是如何做的吧。
从STRUTS的ACTION当中加载两个对象
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
List GetAllDept
=
UserDAO.GetAllDept();
//
取得所有部门
List GetALLUser
=
UserDAO.GetAllUser();
//
取得所有用户
request.setAttribute(
"
View_Dept
"
, GetAllDept);
request.setAttribute(
"
View_User
"
, GetALLUser);
在页面当中加入对JSTL的引用
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
然后写代码如下:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><table>
<tr>
<td align="center">
<a href="User.do?method=EditUser&UserId=<c:out value='${View_User.UserId}'/>">
<c:out value="${View_User.UserName}" /> </a>
</td>
<td align="center">
<c:forEach items="${View_Dept}" var="View_Dept">
<c:if test="${View_User.Dept.DeptId==View_Dept.DeptId}">
<c:out value="${View_Dept.DeptName}" />
</c:if>
</c:forEach>
</td>
</tr>
</table>
其中View_User.Dept.DeptId表示USER表与DEPT表的一个关系(外键)
你就可以看到所显示的列表了。
还有如果在修改用户时,则也与上面的差不多,首先在ACTION当中加入:
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->String ModifyUserId = request.getParameter("GroupUserId");
if (ModifyUserId == null && ModifyUserId.equals("")) {
//这是出错处理
request.setAttribute("UserMsg", "User.ValidateUser");
return mapping.findForward("Fail");
}
DynaValidatorForm UserActionForm = (DynaValidatorForm) form;
User user = UserDAO.GetUser(ModifyUserId);
List GetAllDept = UserDAO.GetAllDept();//取得所有部门
request.setAttribute("View_Dept", GetAllDept);
UserActionForm.set("User", User);
然后页面当中显示如下(部门为LISTBOX),例子当中只显示部门
<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><html:select property="DeptAsString">
<c:forEach items="${View_Dept}" var="View_Dept">
<c:choose>
<c:when test="${User.Dept.DeptId==View_Dept.DeptId}">
<option value="<c:out value='${View_Dept.DeptId}' />"selected>
<c:out value="${View_Dept.DeptName}" />
</option>
</c:when>
<c:otherwise>
<option value="<c:out value='${View_Dept.DeptId}' />">
<c:out value="${View_Dept.DeptName}" /></option>
</c:otherwise>
</c:choose>
</c:forEach>
</html:select>
可以看到HTML的SELECT有一个DeptAsString,你可以在FORM当中指定一个STRING的FORM属性。
这样用户的要求就可以完成了。
本次只说明方法,而代码没有经过测试。希望大家多多观注我的BLOG,下一次将臭骂ACTIONFROM不支持的DATE类型及解决方法。
分享到:
相关推荐
Struts标签是Apache Jakarta Struts框架中的一部分,用于简化Java Web应用程序开发中的视图层构建。Struts标签库提供了一组预定义的JSP标签,这些标签有助于开发者更有效地处理常见的Web开发任务,如表单处理、数据...
Struts2框架中的标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列与动作、结果、表单和国际化相关的标签。这些标签能够帮助开发者在页面上轻松地展现数据、处理表单提交、实现动态内容生成等。 2. **主要...
Struts1 标签库是 Apache Jakarta 的一个著名的开源项目,目标是为构建基于 Java 的 web 应用程序提供一个框架。Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:Bean Tags、HTML Tags、...
STRUTS是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了丰富的标签库,用于简化JSP页面中的Java代码。STRUTS标签通常与ActionForm、ModelDriven等概念结合,可以更方便地处理表单提交、数据...
Struts标签 Struts标签Struts标签Struts标签Struts标签
Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来控制页面的执行过程,并...
Struts标签是Apache Struts...总结,Struts标签通过提供一系列定制化的JSP标签,极大地简化了Web应用程序的视图层开发。熟练掌握Struts标签的使用,不仅能提升开发效率,还能帮助构建出更加健壮和易于维护的Web应用。
Struts标签库是Java Web开发中的一个重要组成部分,它极大地简化了基于MVC(Model-View-Controller)架构的Struts框架的应用程序开发。这个“Struts标签库.chm”文件很可能是官方或第三方编写的帮助文档,包含了关于...
Struts2标签库是Struts2框架中的一个重要组件,它提供了一系列的标签,帮助开发者快速构建Web应用程序。在Struts2标签库中,标签可以分为UI标签和非UI标签两大类。UI标签用于生成HTML控件,如文本框、列表框、复选框...
Struts标签库是Java Web开发中的一个重要组成部分,主要用于构建基于MVC(模型-视图-控制器)架构的应用程序。这个库极大地简化了JSP页面的编写,提供了丰富的标签来处理常见的Web开发任务,如表单处理、数据校验、...
在Struts中,标签库是一种强大的工具,能够简化视图层的开发,提高代码的可读性和可维护性。本篇文章将深入探讨Struts标签的相关知识点,包括它们的作用、类型以及如何在实际项目中使用。 一、Struts标签概述 ...
Struts标签库是Java Web开发中的一个重要组成部分,它极大地简化了开发者在JSP页面中处理业务逻辑和控制流程的工作。Struts是一个开源框架,最初由Apache软件基金会开发,旨在提供一个MVC(Model-View-Controller)...
在使用Struts标签时,需要确保已经导入了Struts的标签库,并且Action配置正确,这样才能正确地调用和展示数据。 在“struts标签.txt”文件中,可能包含了更多关于Struts标签的详细用法和示例。这些标签能够简化JSP...
Struts标签 大全
Struts标签和JSTL(JavaServer Pages Standard Tag Library)标签是Java Web开发中的两种重要组件,...深入研究“Struts标签参考.CHM”和“jstl-1_1-mr2-spec.pdf”这两个文档,将有助于你更好地理解和运用这些技术。
Struts 是一款用于构建企业级Web应用的开源框架,其标签库提供了一系列便于开发人员使用的自定义标签,这些标签可以帮助开发者更高效地创建动态网页,特别是在与Struts框架集成时更为显著。Struts标签库包括表单标签...
Struts标签库是Struts框架的一部分,它提供了一系列预定义的JSP标签,使得开发者能够更简洁、高效地在视图层操作。这些标签简化了HTML表单处理、数据验证、国际化等任务,降低了视图与控制逻辑之间的耦合度。以下是...
Struts标签库是Java开发中基于Struts框架的一个重要组件,它为开发者提供了一系列便捷的JSP标签,简化了Web应用的开发工作。本章主要介绍了五个主要的Struts标签库,分别是HTML标签库、Bean标签库、Logic标签库、...
Struts框架是Java Web开发中的一个经典开源框架,它的核心组成部分之一就是标签库,这使得开发者在编写JSP页面时可以更加便捷地处理业务逻辑和展示数据。在Struts中,主要有三种类型的标签:Bean标签、HTML标签和...
Bean 标签: 在访问JavaBeans 及其属性,以及定义一个新的bean 时使用 Logic 标签: 管理条件产生的输出和对象集产生的循环 Template标签:随着Tiles框架包的出现,此标记已开始减少使用 Nested标签: 增强对...