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 }" />">使用 <c:param> 为指定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>
网友评论