第一步:编写一个标签处理器类
public class IfTag extends SimpleTagSupport {
private boolean test;
public void setTest(boolean test) {
this.test = test;
}
@Override
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub
if(test)
this.getJspBody().invoke(null);
else
super.doTag();
}
}
第二步:编写一个标签描述文件view.tld
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>/jsp2-tagexample</uri>
<tag>
<description>Outputs Hello, World</description>
<name>if</name>
<tag-class>cn.itcast.web.tag.example.IfTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>test</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
第三步:编写一个jsp导入自定义标签
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib uri ="/jsp2-tagexample" prefix="fix"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<fix:referer site="http://localhost" page="/index.jsp"></fix:referer>
<html>
<head>
<title>My JSP '1.jsp' starting page</title>
</head>
<body>
<% session.setAttribute("user","mmmm") ;%>
<fix:if test="${user==null }">
未登陆. <br>
</fix:if>
<fix:if test="${user!=null }">
welcome用户已经登录. <br>
</fix:if>
ssss
</body>
</body>
</html>
第四步:测试...
源码见附件...
分享到:
相关推荐
5. **检查代码结构**:确认`<c:if>`标签的关闭标签`</c:if>`是否正确,以及是否在合适的语境中使用,有时不正确的代码结构也可能导致编辑器的解析错误。 6. **使用HTML注释**:一种临时解决方案是,将`<c:if>`标签...
1. `<c:if>`:进行条件判断,如果表达式的值为真,则执行相应的代码。 2. `<c:choose>`, `<c:when>`, `<c:otherwise>`:类似于Java的switch语句,可以进行多条件分支判断。 **循环标记**: 1. `<c:forEach>`:用于...
### JSTL中if标签使用方法详解 JSTL(JavaServer Pages Standard Tag Library)是为简化JSP页面开发而设计的一组标准标签库。它提供了处理数据、条件逻辑等功能的强大工具,使得开发者无需编写复杂的Java代码即可...
总的来说,`<c:if>`和`<c:forEach>`是JSTL库中的两个重要标签,它们在前端EL表达式的应用中起着关键作用,帮助开发者在不编写过多Java代码的情况下完成条件判断和循环操作,提升了开发效率和代码可读性。理解和熟练...
- **`<c:if>`**:根据条件判断是否执行标签体内的内容。 - 示例:`<c:if test="${condition}">...</c:if>` - **`<c:forEach>`**:遍历集合或数组中的元素。 - 示例:`<c:forEach items="${list}" var="item">...</...
4. **XML标签**:处理XML文档,如`<c:out>`显示XML内容,`<x:parse>`解析XML字符串。 5. **SQL标签**:执行数据库查询,如`<sql:update>`、`<sql:query>`和`<sql:resultSet>`。 使用JSTL的好处在于,它将Java代码...
除了这些,JSTL还提供了其他标签,如`<c:set>`用于设置变量,`<c:if>`和`<c:choose>`进行条件判断,`<c:forEach>`进行循环遍历,等等。使用JSTL可以使JSP代码更加整洁,更易于理解和维护,是现代JSP开发中的重要工具...
- **流程控制标签**:`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`,用于条件判断和多分支选择。 - **迭代标签**:`<c:forEach>`、`<c:forTokens>`,实现循环遍历。 - **URL操作标签**:`<c:import>`、`...
<c:if test="${age > 18}"> 成年人 </c:if> ``` - **`<c:choose>, <c:when>, <c:otherwise>`**: 提供多条件选择。例如: ```jsp <c:choose> <c:when test="${gender eq 'male'}"> 男性 </c:when> <c:when...
C标签库提供了一些类似于Java编程中的控制结构,例如`<c:if>`, `<c:forEach>`, `<c:choose>`, `<c:set>`等,这些标签能够帮助开发者更方便地在JSP页面上进行逻辑处理,而无需过多地编写脚本let或Java表达式。...
1. **Core标签库**:提供了基本的控制流操作,如迭代(`<c:forEach>`)、条件语句(`<c:if>`、`<c:choose>`)、URL处理(`<c:url>`、`<c:param>`)等。 2. **XML标签库**:用于处理XML文档,包括解析XML(`<x:parse>...
<c:if test="${param.name == 'admin'}" var="result"/> <c:out value="${result}"/> // 输出 true 或 false ``` 如果参数`name`的值等于`admin`,则设置`result`变量为`true`,否则为`false`。 #### 6. `<c:...
C标签库是JSTL的一部分,它包含了类似于Java语言的循环和条件语句的标签,如`<c:forEach>`、`<c:if>`、`<c:choose>`等。这些标签使得JSP开发者能够更清晰地组织代码,而不是直接在页面上写Java脚本。例如,`<c:...
2. **条件标签库**:包含`<c:if>`和`<c:choose>`等标签,用于实现条件判断。如: ```jsp <c:if test="${pageScope.signalStrength < 5}"> <c:set var="signalFailure" value="true" scope="page" /> </c:if> <c:...
`<c:choose>`包含多个`<c:when>`标签,每个`<c:when>`标签有一个`test`属性用于判断条件,`<c:otherwise>`标签用于当所有条件都不满足时执行的代码。 **三、迭代操作** 1. `<c:forEach>` 标签用于遍历集合或数组,...
- `<c:if>`:条件判断标签,类似于Java中的`if`语句。`test`属性用于设定条件,例如: ```jsp <c:if test="${condition}" var="name" scope="session"> <!-- 条件满足时的代码 --> </c:if> ``` - `<c:...
2. **<c:if>** 标签: - `<c:if>`标签用于进行条件判断,与Java的`if`语句类似,但更适用于JSP页面。 - **语法1**:无标签体,仅进行条件判断。 ```jsp <c:if test="testCondition" var="result" [scope="{page|...
- **Core(C)库**:包含了用于控制流程的基本标签,如`<c:if>`、`<c:choose>`、`<c:forEach>`等。 - **I18N(Internationalization,国际化)库**:用于处理国际化和本地化,如`<fmt:formatNumber>`、`<fmt:message...
JSTL还包括其他标签,如`<c:forEach>`用于迭代操作,`<c:import>`用于导入外部资源,`<c:redirect>`和`<c:url>`用于URL操作等。 通过这些标签,开发者可以在JSP页面中轻松实现数据处理、条件判断、循环和URL管理等...