
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>11
很多时候,当写完这句的时候,都会报一个错误提示信息。那么怎么解决?
进入“settings”设置选项,然后搜“DTD”然后如下图,在左边的标签选项卡找到“Schemas and DTDS”
然后选择右边的“External schemas and dtds”中的添加按钮
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>11
然后选择ok,然后根据自己的需要配置
给你段代码参考一下。这段是 *** 作标签控件,以添加标签页。具体点哪个标签显示什么内容,还要在标签的消息响应函数中添加显示/隐藏页面的代码。OnInitDialog()中进行初始化,代码如下:
CImageList imageList
CBitmap bitmap
bitmap.LoadBitmap(IDB_BMP_TABIMG)
imageList.Create(16, 16, ILC_COLOR24|ILC_MASK, 16, 1)
imageList.Add(&bitmap, RGB(255, 0, 255))
// 将控件子类化到控件类变量,就可以象进行类对象 *** 作一样添加标签页
m_tabCtrl.SubclassDlgItem(IDC_TAB_CTRL, this)
m_tabCtrl.SetImageList(&imageList)
TC_ITEM TabCtrlItem
TabCtrlItem.mask = TCIF_TEXT | TCIF_IMAGE
TabCtrlItem.iImage = 0
TabCtrlItem.pszText = "快捷面板"
m_tabCtrl.InsertItem(0, &TabCtrlItem)
m_pageShortcutBoard.Create(IDD_DLG_SHORTCUT, &m_tabCtrl)
CRect rc
m_tabCtrl.GetClientRect(&rc)
m_pageShortcutBoard.SetWindowPos (NULL, 12, 28,rc.right-16,rc.bottom-40,SWP_SHOWWINDOW)
TabCtrlItem.mask = TCIF_TEXT | TCIF_IMAGE
TabCtrlItem.iImage = 1
TabCtrlItem.pszText = "位置记录"
m_tabCtrl.InsertItem(1, &TabCtrlItem)
m_pagePegRecord.Create(IDD_DLG_PEGRECORD, &m_tabCtrl)
m_pagePegRecord.SetWindowPos(NULL, 4, 28, rc.right-7, rc.bottom-32,SWP_HIDEWINDOW )
imageList.Detach()
bitmap.Detach()
// 初始化结束
// 选择标签的响应函数,在这里边决定显示哪个页面
void CPaveShootDlg::OnTcnSelchangeTabCtrl(NMHDR *pNMHDR, LRESULT *pResult)
{
CRect rc
m_tabCtrl.GetClientRect (&rc)
switch(m_tabCtrl.GetCurSel())
{
case 0:
// 显示这个页面
m_pageShortcutBoard.SetWindowPos (NULL, 12, 28,rc.right-16,rc.bottom -40,SWP_SHOWWINDOW)
// 隐藏这个页面
m_pagePegRecord.SetWindowPos (NULL, 4, 28, rc.right-7, rc.bottom-32,SWP_HIDEWINDOW )
break
case 1:
// 隐藏这个页面
m_pageShortcutBoard.SetWindowPos (NULL, 12, 28, rc.right-16, rc.bottom-40, SWP_HIDEWINDOW)
// 显示这个页面
m_pagePegRecord.SetWindowPos (NULL, 4, 28, rc.right-7, rc.bottom-32, SWP_SHOWWINDOW )
break
}
//*pResult = 0
}
FOREACH标签部分.首先确认MAP中有没有取得数据.
<c:forEach [var="varName"] items="" [varStatus="varStatusName"]
FOREACH标签含义: items存放被迭代的集合对象, var用来存放现在指到的成员。
3. var元素输出的参数需要与MAP中存放的参数对应,(通常用一个JAVABEAN对像封装放在LIST等集合对像中).案例中的,NAME等值是否在JAVABEAN中存在.如果存在,EL表达式写法为: ${entry.name}即可直接输入,其他值也是一样.
IF标签部分.
EL表达式有自己的判断方式,无法直接用==,!=,>=,<=直接判断.
如果要判断封装对像是否为空.请用empty关键字....
以下是IF标签与FOREACH综合用法的示例:
<!-- 如果集合中不为空,输出数据! --><c:if test="${!empty adminlist}"> <c:forEach items="${adminlist}" var="list"> <tr> <td>${list.id}</td> <td>${list.name}</td> <td>${list.pwd}</td> </tr> </c:forEach></c:if><!-- 如果集合中为空,直接在HTML中输出提示! --><c:if test="${empty adminlist}"> 未能找到数据! </c:if>
为了能更好的显示出FOREACH的效果.通常先用choose标签进行判断,以下是JSP页面中的完整标签片段示例:(IF标签不再举例.)
<table cellpadding="5" cellspacing="1" border="0" width="100%" align="center"> <tr align="center"> <td>ID</td> <td>用户帐号</td> <td>用户密码</td> <td colspan="2">管理</td> </tr><c:choose> <c:when test="${!empty userlist}"> <c:forEach items="${userlist}" var="list"> <tr> <td>${list.id}</td> <td>${list.name}</td> <td>${list.pwd}</td> <td> <a href="UserEdit.jspx?action=update&id=${list.id}">编缉</a> </td> <td> <div onClick="return del()"> <a href="UserEdit.jspx?action=delete&id=${list.id}">删除</a> </div> </td> </tr> </c:forEach> </c:when> <c:otherwise> <tr> <td colspan="5">未能找到符合条件的数据!</td> </tr> </c:otherwise> </c:choose></table>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)