JSP开发中-JSTL 相关

2019-08-22  本文已影响0人  暗物质

JSTL

w3cschool-jsp 在此查阅学习

<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>

<c:out value="customer.address.street">
-----------------------------------------------------------------------------------------------
<c:set
   var="<string>"
   value="<string>"
   target="<string>"
   property="<string>"
   scope="<string>"/>
<c:set var="salary" scope="session" value="${2000*2}"/>
<c:out value="${salary}"/>
-----------------------------------------------------------------------------------------------
<c:remove var="<string>" scope="<string>"/>
<c:remove var="salary" scope="session"/>
<p>删除salary变量后的值:<c:out value="${salary }"/></p>
-----------------------------------------------------------------------------------------------
<c:catch var="<string>">
...
</c:catch>
<c:catch var="catchException">
    <% int x = 5/0; %>
</c:catch>
<c:if test="${catchException != null }">
    <p>
        异常为:${catchException }<br/>
        发生了异常:${catchException.message }
    </p>
</c:if>
-----------------------------------------------------------------------------------------------

<c:if test="<boolean>" var="<string>" scope="<string>">
   ...
</c:if>

模拟 if-else:
<c:set var="salary" scope="session" value="${10000*2-1 }"/>
<c:if test="${salary > 20000 }" var="salaryFlag" scope="session">
    <p>我的工资为:<c:out value="${salary }"/> </p>
</c:if>
<c:if test="${not salaryFlag }">
    <p>我的工资为小于2万:<c:out value="${salary }"/> </p>
</c:if>

-----------------------------------------------------------------------------------------------
<c:choose>
    <c:when test="<boolean>">
        ...
    </c:when>
    <c:when test="<boolean>">
        ...
    </c:when>
    ...
    ...
    <c:otherwise>
        ...
    </c:otherwise>
</c:choose>

<c:choose>
    <c:when test="${salary <= 10000 }">
        太惨了。。
    </c:when>
    <c:when test="${salary > 20000 }">
        太棒了。。
    </c:when>
    <c:otherwise>
        还能生活、、
    </c:otherwise>
</c:choose>

-----------------------------------------------------------------------------------------------
<c:import
   url="<string>" 待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源
   var="<string>"   用于存储所引入的文本的变量
   scope="<string>"     var属性的作用域
   varRender="<string>"     可选的用于提供java.io.Reader对象的变量
   context="<string>" / 紧接着一个本地网络应用程序的名称
   charEncoding="<string>"/>    所引入的数据的字符编码集

<%
    int totalCount = 10;
    int pageIndex = 2;
    int totalPage = 5;
%>
<c:import url="rollpage.jsp">
    <c:param name="totalCount" value="<%=Integer.toString(totalCount) %>"></c:param>
    <c:param name="pageIndex" value="<%=Integer.toString(pageIndex) %>"></c:param>
    <c:param name="totalPage" value="<%=Integer.toString(totalPage) %>"></c:param>
</c:import>

-----------------------------------------------------------------------------------------------

<c:forEach
    items="<object>"
    begin="<int>"
    end="<int>"
    step="<int>"
    var="<string>"
    varStatus="<string>" >

<c:foreach  items="${sessionScope.userList}"  var="userItem"  begin="1"  end="10"  step="3"  varStatus="userStatus"> XXX </c:foreach>
实例解读: 对 session 对象存储的 userList 集合对象进行遍历,每次访问的项暂时存储在 userItem 变量中,从索引 1 开始至索引 10 进行访问,但不是依次访问,每隔 3 个元素访问一次。每次访问项的状态相关值由 userStatus 对象暂存。

<c:foreach> 的 varStatus 属性暂存项的相关状态属性,可由 EL 表达式引用。
${userStatus.index} 此项的索引,从0开始 
${userStatus.count} 此项的计数序号,从1开始 
${userStatus.first} 此项是否是第一项,布尔值 
${userStatus.last} 此项是否是最后一项,布尔值 
${userStatus.begin} 此次迭代的起始索引,对应<c:foreach>中begin属性值 
${userStatus.end} 此次迭代的终止索引,对应<c:foreach>中end属性值 
${userStatus.step} 此次迭代的跳跃步伐,对应<c:foreach>中step属性值  

<c:forTokens items="google,runoob,taobao" delims="," var="name">
   <c:out value="${name}"/><p>
</c:forTokens>

-----------------------------------------------------------------------------------------------
<c:param name="<string>" value="<string>"/>
<c:url
  var="<string>"
  scope="<string>"
  value="<string>"
  context="<string>"/>

<c:url var="myURL" value="main.jsp">
    <c:param name="name" value="Runoob"></c:param>
    <c:param name="url" value="www.runoob.com"></c:param>
</c:url>
<a href="/<c:out value="${myURL }" />">使用 &lt;c:param&gt; 为指定URL发送两个参数。</a>

-----------------------------------------------------------------------------------------------

<c:redirect url="<string>" context="<string>"/>

<c:redirect url="${myURL }"></c:redirect>  运行后马上跳转

-----------------------------------------------------------------------------------------------

问题:jsp中根据动态key取map中的bean对象 && js中获取点击事件对象的属性

Jquery 获取 radio选中值
jsp页面使用el 按key获取map中的对应值GOOD

java:
             
    ModelAndView mv = new ModelAndView();
    String[] categories = NoticeBean.categories();
    Map<String, NoticeBean> noticeBeanMap = new HashMap<String, NoticeBean>();
    for (String key: categories) {
        String jsonString = "....";
        NoticeBean noticeBean = JSON.parseObject(jsonString, NoticeBean.class);
        noticeBeanMap.put(key, noticeBean );
    }
    mv.addObject("noticeBeanMap", noticeBeanMap);
    mv.addObject("categories", categories);
    mv.setViewName("notice/updateNoticeInit");
    return mv;

updateNoticeInit.jsp :

<c:forEach items="${categories }" var="category">
    根据key循环获取map中的对象属性值
        <c:set var="msg" value="${noticeBeanMap[category]['msg'] }"></c:set>
        <button type="button" class="btn btn-default" value="${category }" >按钮</button>
        
        <c:set var="radiozt" value="${category}_zt"></c:set>
        <label><input name=${radiozt } type="radio" value="0"  />0:展示通知 </label><br/>
        <label><input name=${radiozt } type="radio" value="1"  checked="checked" />1:不展示通知 
        
        <c:set var="textareamsg" value="${category}_msg"></c:set>
        <textarea class="form-control" rows="3" cols="150" id=${textareamsg } name="content">${msg }
</textarea>
</c:forEach>

js:
<script type="text/javascript">

    $(document).ready(function(){
        $("button").click(function(){
              var category = $(this).val();
              var radiozt = category + '_zt';
              var textareamsg = category + '_msg';
              
              var _zt = $('input[name='+radiozt+']:checked').val();
              var _msg = $('textarea#'+textareamsg).val();
              $.post("<%=basePath%>notice/updateAlichezhuNotice.do",
                      {category: category, zt:_zt, msg:_msg },
                      function(data, status) {
                         ...
                      })
                      .error(function() { 
                          alert( "网络出问题了,请稍候重试"); 
                      });
          });
    });
</script>

格式化标签

SQL标签

XML 标签

JSTL函数

上一篇下一篇

猜你喜欢

热点阅读