`

JSTL与Struts2标签的使用对比

    博客分类:
  • JAVA
 
阅读更多

1. 条件标签
    JSTL:  

 1 <c:if test="${user.password == 'hello'}">
 2     <c:choose>
 3         <c:when test="${user.age <= 18}">
 4             <font color="blue" />
 5         </c:when>
 6         <c:when test="${user.age <= 30 && user.age > 18}">
 7             <font color="red" />
 8         </c:when>
 9         <c:otherwise>
10             <font color="green" />
11         </c:otherwise>
12     </c:choose>
13 </c:if>

    Struts2:

1 <s:if test="#user.age <= 18">
2     <font color="blue" />
3 </s:if>
4 <s:elseif test="#user.age <= 30 && user.age > 18">
5     <font color="red" />
6 </s:elseif>
7     <font color="green" />
8 </s:else>


2. 迭代标签
    JSTL:

1 <c:forEach var="user" items="${users}">
2     <c:out value="${user.userName}" />
3 </c:forEach>
4 <!-- 迭代固定次数 -->
5 <c:forEach var="i" begin="1" end="10" step="3">
6     <c:out value="${i}" />
7 </c:forEach>
8 <!-- 这种循环相当于for(int i=1; i<10; i++), 其中step是指迭代的步长,默认为1. -->

    Struts2:

1 <s:iterator value="#users" status="stuts">                
2     <s:if test="#stuts.odd == true">   <!-- 判断是否为奇数行 -->
3         <s:property value="userName" />
4     </s:if>
5     <s:else>
6         <s:property value="passWord" />
7     </s:else>
8 </s:iterator>


3. URL相关标签
    JSTL:

 1 <!-- 绝对路径 -->
 2 <c:import url="http://127.0.0.1:8080/hello/hello.jsp" />
 3 <!-- 相对路径 -->
 4 <c:import url="hello.jsp" />
 5 <!-- Encode -->
 6 <href="<c:url value='hello.jsp'><c:param name='userName' value='cyanbomb' /></c:url>"></a>
 7 <!-- 传递参数到指定的URL -->
 8 <c:import url="hello.jsp" charEncoding="gb2312" >
 9     <c:param name="userName" value="cyanbomb" />
10 </c:import>
11 <!-- URL重定向 -->
12 <c:redirect url="${myurl}" />
13 <!-- 构造URL -->
14 <c:url value="myurl" var="hello.jsp" scope="session">
15     <c:param name="userName" value="cyanbomb" />
16 </c:url>

    Struts2:

1 <href='<s:url value="/hello.jsp" />'>Hello</a><br />
2 <s:url id="url" value="/hello.jsp">
3     <s:param name="name">cyanbomb</s:param>
4 </s:url>        
5 <s:a href="%{url}">Hello</s:a>


解除的疑问,list遍历问题

像这样一个list,里面有3条记录,每条记录包含两个对象,我把结果集(lstRooms)request到了页面,想遍历显示RrmRooms里的id,和RrmRoomType里的name.
我用JSTL实现如下:

1 <table>
2     <c:forEach var="rm" items="${lstRooms}">
3         <tr>
4             <td>${rm[0].id}</td>
5             <td>${rm[1].name}</td>
6         <tr>
7     </c:forEach>
8 </table>

STRUTS2实现如下:

1<table>
2     <s:iterator value="#lstRooms" status="stat">
3         <tr>
4             <td><s:property value="#lstRooms[#stat.index][0].id" /></td>
5             <td><s:property value="#lstRooms[#stat.index][1].name" /></td>
6         <tr>
7     </s:iterator>
8</table>
分享到:
评论

相关推荐

    Struts2与Struts1的对比

    ### Struts2与Struts1的对比 #### 一、Action类 在Struts框架的两个版本中,Action类的设计存在显著差异。 - **Struts1**:在Struts1中,Action类需要继承自一个特定的基础类。这意味着所有的Action类都需要实现...

    struts2与struts的对比

    ### Struts2与Struts的对比 #### 一、简介 在Java Web开发领域,Struts框架一直是构建企业级应用的重要工具之一。Struts最初版本(通常称为Struts1)自2001年发布以来,迅速成为Java企业级Web应用开发的事实标准。...

    struts2标签介绍

    下面我们将从Struts1.x与Struts2.0标签库的对比入手,再深入探讨Struts2中的非UI标签。 ##### 2.1 Struts1.x与Struts2.0 标签库对比 - **分类**:Struts1.x的标签库按照功能划分为HTML、Tiles、Logic和Bean等几个...

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

    Struts1和Struts2的区别和对比.txt

    ### Struts1与Struts2的区别与对比 #### 概述 Struts1与Struts2是基于Java的两种流行的Web应用框架,它们都遵循MVC(Model-View-Controller)设计模式,用于构建结构化的Web应用程序。Struts1是早期版本,在2000...

    Struts1与Struts2本质区别

    - **Struts 2**:使用“ValueStack”技术,使标签库可以直接访问值,无需显式地将对象绑定到页面,简化了数据传递的过程。 #### 8. 类型转换的对比 - **Struts 1**:使用`Commons-Beanutils`进行类型转换,但转换...

    struts1与struts2本质区别

    - **Struts2**:使用“ValueStack”技术,标签库可以直接访问堆栈中的值,无需显式地将对象绑定到视图页面。 #### 八、类型转换的对比 - **Struts1**:使用Commons-Beanutils进行类型转换,每个类一个转换器,转换...

    struts1和struts2的对比

    - **Struts2与Servlet API** - Struts2的Action不直接处理HTTP请求和响应,而是通过拦截器来间接访问。 - 这种设计减少了Action类对Servlet API的依赖,提高了组件间的解耦,也便于进行单元测试。 #### 表单和...

    魔乐科技Struts2.x框架笔记

    **标签库选择**:尽管Struts2.x提供了丰富的标签库,但建议使用JSTL标签库来进行页面输出,这样可以更好地遵循标准规范。 **跳转配置**:在Action元素中通过`result`标签定义跳转路径,例如`namespace + result = ...

    JavaWeb-Hibernate-Struts2-Spring2

    此外,Spring2还提供了数据访问、Web MVC、测试等模块,与Hibernate和Struts2结合使用,可构建强大的企业级应用。 **JavaWeb** 基础知识涵盖了Servlet、JSP、过滤器、监听器等核心概念。Servlet是Java编写的服务端...

    Struts1与Struts2的12点区别

    ### Struts1与Struts2的关键区别 #### 1. Action实现类的对比 - **Struts1**:要求Action类必须继承一个抽象基类`Action`,这意味着所有的Action类都共享相同的基本行为和功能。然而,这种方式存在局限性,因为...

    SSH(Struts,Spring,Hibernate)笔试题与面试题汇总整理.docx

    6. 表达式语言方面的对比:Struts1 整合了 JSTL,而 Struts2 可以使用 JSTL,但它整合了一种更强大和灵活的表达式语言:OGNL。 7. 绑定值到视图的对比:Struts1 使用标准 JSP 机制把对象绑定到视图页面,而 Struts2 ...

    Struts2详细实例教程

    - **Struts标签库**:提供一组与JSTL相似但更紧密集成Struts组件的标签,如`&lt;html:form&gt;`、`&lt;html:text&gt;`等。 **2. Struts2的MVC架构** Struts2的核心组件包括: - **FilterDispatcher**:作为中央控制器的过滤器...

    struts1.2和struts2区别

    ### 特性对比:Struts1.2与Struts2 #### Action类的设计哲学 - **Struts1.2**:要求Action类继承自抽象基类`Action`,这种设计方式限制了代码的灵活性,迫使开发者面向抽象类编程而非接口。这一策略在实际应用中...

    struts-app

    4. **视图技术**:Struts1主要依赖标准的JSP页面作为视图层,使用JSTL标签库进行数据展示。 #### Struts2的特点 1. **Action接口**:与Struts1不同,Struts2中的Action实现了`Action`接口而非继承特定的基类。...

    JSTL_speakernoted_教材

    - **JSTL与MVC框架的整合**:解释JSTL如何与Spring MVC、Struts等框架配合,增强Web应用的开发效率。 - **最佳实践和案例分析**:提供实际项目中的应用场景,帮助读者理解并掌握JSTL的实际应用。 **通过阅读《JSTL...

    【温故而知新】一个极好极全极简明的EL表达式的学习文档

    在这个文档中,我们将深入探讨EL表达式,并通过与OGNL、JSTL和STRUTS2标签的对比,进一步理解其用法。 首先,让我们关注EL表达式的语法。EL表达式通常以`#{}`包围,它允许开发者以一种声明式的方式访问和操作Java...

    Struts 1 &sturts

    ### Struts 1与Struts 2框架对比分析 #### Struts 1框架特性与问题 **特性:** - **Action类设计模式:**在Struts 1中,所有的业务逻辑处理都通过Action类实现。这些Action类必须继承自一个抽象基类(如`org....

Global site tag (gtag.js) - Google Analytics