今天上午为了项目统一要把页面中的struts标签改为jstl标签。
简要记录一下修改过程:用到标签的地方主要是遍历和条件判断。其他地方能用el表达式代替的尽量用el表达式。
struts遍历:<s:iterator value="userCourseBeans" var="userCourse">
<td align="center"><s:property value="#c.courseID.formID.formName" /></td>
</s:iterator>
jstl遍历和struts差不多:<c:forEach var="userCourse" items="${userCourseBeans}"> </c:forEach>
struts条件判断:<s:if test="#userCourse.courseID.bookDinner==true">
<s:if test="#userCourse.bookDinner==true">
结果一
</s:if>
<s:else>
结果二
</s:else>
</s:if>
<s:else>
结果三
</s:else>
但是用jstl就感觉麻烦一些:<c:choose>
<c:when test="${userCourse.courseID.bookDinner}">
<c:choose>
<c:when test="${userCourse.bookDinner}">
结果一
</c:when>
<c:otherwise>
结果二
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
结果三
</c:otherwise>
</c:choose>
也就是说jstl必须用<c:wher>和<c:otherwise>才能实现if else操作。用<c:if>只能实现if操作。
并且if else出现嵌套时,如上例每个相当于每个<c:otherwise>外面都要有<c:choose>.其实<c:when>和<c:otherwise>相当于java中的switch中的case default,而<c:choose>相当于switch;
分享到:
相关推荐
2. `<c:choose>`, `<c:when>`, `<c:otherwise>`:类似于Java的switch语句,可以进行多条件分支判断。 **循环标记**: 1. `<c:forEach>`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `<c:forTokens>`:对字符...
结合**jstl.jar**包,这个标签库提供了许多其他实用的标签,如`<c:set>`用于设置变量,`<c:choose>`、`<c:when>`和`<c:otherwise>`用于多条件判断等,极大地简化了JSP页面的逻辑处理,使得页面更加清晰,符合MVC...
其中`test`属性包含一个EL表达式,当该表达式的值为`true`时,才会执行`<c:if>`标签内的代码。 #### 6. `<c:choose>`、`<c:when>` 和 `<c:otherwise>` - 多条件选择 这一组标签用于实现更复杂的多条件分支逻辑,...
- **流程控制标签**:`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`,用于条件判断和多分支选择。 - **迭代标签**:`<c:forEach>`、`<c:forTokens>`,实现循环遍历。 - **URL操作标签**:`<c:import>`、`...
- `<c:choose>`, `<c:when>`, `<c:otherwise>`:用于创建多分支结构。 - `<c:forLoop>`:用于执行循环。 - `<c:forEach>`:适用于迭代集合数据,如数组、列表、Map等。 - `<c:redirect>` 和 `<c:forward>`:处理...
JSTL还提供了一组条件标签,包括 `<c:if>`、`<c:choose>`、`<c:when>` 和 `<c:otherwise>`,用于实现条件逻辑。 - `<c:if>` 类似于Java中的 `if` 语句,用于根据条件决定是否执行特定代码块。示例: ```jsp <c:...
以上只是JSTL核心标签库的一部分功能,实际应用中还有更多标签,如循环标签`<c:forEach>`、迭代标签`<c:forTokens>`等。这些标签在处理数据、控制流程等方面提供了极大的便利,使得JSP页面更加简洁、易读,也更符合...
3. `<c:if>`和`<c:choose>`:条件判断。`<c:if>`用于简单的条件检查,而`<c:choose>`则用于复杂的多条件选择。例如: ```jsp <c:if test="${age >= 18}" > 成年人 </c:if> <c:choose> <c:when test="${age < ...
异常信息:<c:out value="${error.message}"></c:out> ``` 这里捕获了一个除零错误,并将其信息存储在变量`error`中。 #### 条件控制语句:实现逻辑判断与分支 1. **`<c:if>`**:基于条件的分支。例如,`<c:if ...
4. `<c:if>`和`<c:choose>`:条件判断。例如: ```jsp <c:if test="${user.isAdmin}"> <p>欢迎管理员!</p> </c:if> <c:choose> <c:when test="${user.age > 18}"> <p>您已成年。</p> </c:when> <c:otherwise>...
3. `<c:choose>`, `<c:when>`, `<c:otherwise>`:这组标签可以实现多条件分支,类似于Java的`if...else if...else`结构: ```jsp <c:set var="str1" value="1234"></c:set> <c:choose> <c:when test="${str1 == '...
C标签库是JSTL的一部分,它包含了类似于Java语言的循环和条件语句的标签,如`<c:forEach>`、`<c:if>`、`<c:choose>`等。这些标签使得JSP开发者能够更清晰地组织代码,而不是直接在页面上写Java脚本。例如,`<c:...
4. **XML标签**:处理XML文档,如`<c:out>`显示XML内容,`<x:parse>`解析XML字符串。 5. **SQL标签**:执行数据库查询,如`<sql:update>`、`<sql:query>`和`<sql:resultSet>`。 使用JSTL的好处在于,它将Java代码...
- `<c:if>`和`<c:choose>`:条件判断标签,实现类似Java的if和switch语句。 - `<c:set>`:设置变量。 - `<c:out>`:输出值,可以防止XSS攻击。 - `<c:remove>`:删除变量。 - `<c:url>`和`<c:param>`:处理URL和参数...
其中,Core库是最常用的部分,包含了与页面控制相关的标签,如`<c:if>`、`<c:for>`和`<c:choose>`等。 1. **JSTL Core库**:这是最基础的库,提供了大量用于控制流程和处理数据的标签。例如: - `<c:if>`:条件...
主要包括`<c:out>`、`<c:set>`、`<c:remove>`、`<c:catch>`、`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`、`<c:forEach>`、`<c:forTokens>`、`<c:import>`、`<c:url>`和`<c:redirect>`等标签。这些标签...
4. `<c:choose>`, `<c:when>`, `<c:otherwise>`:这些标签一起使用,提供了一个类似Java `switch`语句的功能。可以根据不同的条件执行不同的代码块: ```jsp <c:choose> <c:when test="${count <= 0}"> <font ...
- **<c:if>** 和 **<c:choose>**:实现条件判断,`<c:if>`用于简单的条件测试,`<c:choose>`配合`<c:when>`和`<c:otherwise>`实现多分支选择。 - **<c:forEach>** 和 **<c:forTokens>**:进行循环操作,`<c:...
- `<c:choose>`:开始标签。 - `<c:when>`:条件分支。 - `<c:otherwise>`:默认分支。 示例: ```jsp <c:choose> <c:when test="${condition1}"> <!-- 条件1成立时执行的内容 --> </c:when> <c:when ...