近一年一直在做ANDROID的东西,最近待业,打算去面JAVA岗位,不得不重新温习一下JSTL和struts标签相关东西,怕万一被面官问倒。
这里做一下总结吧:
首先需要在JSP页面中包含JSTL核心标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
其次JSTL的常用标签有:

  1. <c:set>

  2. <c:remove>

  3. <c:if>

  4. <c:forEach >

  5. <c:choose><c:when></c:when><c:otherwise></c:otherwise></c:choose>

  6. <c:out>

  用法举例
1.<c:set var="square" value="${param['x'] }"/>
2.<c:remove var="square"/>
3.<c:if test="${not empty param['x']}">xxxxxxxxxx</c:if>
4.<c:forEach items="${entityList}" var="entity" [varStatus="varStatusName"]>
    ${entity.title}
  </c:forEach>
5.<c:choose>
       <c:when test="${not empty entity.title}">
               ${entity.title}
        </c:when>
        <c:otherwise>
                unknow
        </c:oherwise>
   </c:choose>
6.<c:out value="${entity.title}" escapeXml="true"/>

struts标签需要在页面中包含:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
struts常用标签:
1.<s:if test="empty entity.title">
        ${entity.title}
  </s:if>
   <s:else>
            unknow
    </s:else>
2.<s:iterator value="entityList">
      ${title}
      ${name}
  </s:iterator>

小结:STRUTS的标签代码更为精简,但是JSTL作为JSP的标准表达式语言具有不可替代的标准作用,它不依赖于STRUTS框架,所以本人多数还是使用JSTL较多。
JSTL和struts写法区别:
1.JSTL中当要用到某变量时需要使用${},而在struts表达式中则不用。
2.在循环中使用时STRUTS不用写多级引用,代码更为简练。

STRUTS标签中还自带了许多替代HTML元素的标签,以及一些校验的标签,这里不再赘述。

附件为 JSTL 和 struts标签相关参考内容