2006年10月8日
<SCRIPT language=javascript1.2>
function showsubmenu(sid)
{
whichEl = eval("submenu" + sid);
if (whichEl.style.display == "none")
{
eval("submenu" + sid + ".style.display=\"\";");
}
else
{
eval("submenu" + sid + ".style.display=\"none\";");
}
}
</SCRIPT>
用法:
<tr>
<td height="26" background="../image/menu.gif" id="menuTitle1" onClick="showsubmenu(1)" style="cursor:hand;">
<font color="#FF9900">■ </font><font color="#FFFFFF"><strong>知识库分类</strong></font>
</td>
</tr>
<tr>
<td style="display:none" id='submenu1'>
<table cellspacing="0" align="center" width="100%">
<tr>
<td class="nav">· <a href="<%=request.getContextPath()%>/knowledge/knowledgeCategoryList.htm?order=list" target="mainFrame">编辑知识库分类</a></td>
</tr>
<tr>
<td class="nav">· <a href="<%=request.getContextPath()%>/knowledge/knowledgeCategoryList.htm?order=edit" target="mainFrame">新增知识库分类</a></td>
</tr>
</table>
posted @
2006-10-25 17:37 lovetq 阅读(460) |
评论 (0) |
编辑 收藏
在很多的列表中,后面的操作一栏会有删除链接,并且会让你确认。此处的代码: <a href='javascript:deleteCategory("<%=article.getId() %>")'>删除</a>
javascript函数<script>
function deleteCategory(articleId)
{
if(confirm('是否真的要删除该记录'))
window.location='<%=request.getContextPath()%>/info/infoArticleEdit.htm?order=delete&articleId='+articleId;
}
</script>
一些链接:<input class="button3" type=button value="返回" onclick="javascript:window.location='<%=request.getContextPath() %>/info/infoArticleList.htm'">
<td>文件名:<a href='<%=request.getContextPath()%>/info/infoArticleEdit.htm?order=download&fileId=<%=accessory.getId() %>'><%=accessory.getFileExt() %></a>
<c:url value="........" />
一些传值
<input type=hidden name=order value=save>
<input type=hidden name=id value="<c:out value="${infoArticle.id}" />">
<input type=hidden name=navId value="<%=request.getParameter("navId") %>">
<input type=hidden name=fileCount value=1>
posted @
2006-10-25 16:32 lovetq 阅读(174) |
评论 (0) |
编辑 收藏
页面代码:
<!-- 这个是显示的多选框页面 已有的角色要打勾,可以重新选择角色-->
<form action="<c:url value="/sys/userRolesEdit.htm"/>" method="post" >
<table class="grid" width="100%" cellspacing="1">
<tr>
<td colspan="6" class="title">
角色列表
</td>
</tr>
<tr>
<td class="column"></td>
<td class="column">角色ID</td>
<td class="column">角色名</td>
<td class="column">角色代码</td>
<td class="column">角色描述</td>
</tr>
<!-- 循环显示列表userRoles的每一项,并判断如果数据库中已有的打勾<c:if test标签正确才执行中间的代码-->
<c:forEach items="${roles}" var="item">
<tr>
<td>
<input type="checkbox" name="rolesId" <c:forEach items="${userRoles}" var = "selectedRoles">
<c:if test="${item.srolId == selectedRoles.srolId}">checked="true"</c:if></c:forEach>
value="<c:out value="${item.srolId}"/>" />
</td>
<td><c:out value="${item.srolId}"/></td>
<td><c:out value="${item.srolName}"/> </td>
<td><c:out value="${item.srolCode}"/></td>
<td><c:out value="${item.srolDesc}"/></td>
<tr>
</c:forEach>
<tr>
<td colspan="6" class="nav">
<input type="hidden" name="userID"
value=<c:out value="${userInfo.suinId}"/>>
<input type="submit" class="button3" value="提交"/>
<INPUT type="button" class="button2" value="返回" onclick="history.back()" />
</td>
</tr>
</table>
</form>
控制器代码:
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
Map result = new HashMap();
SysUserinfo userInfo = null;
String id = request.getParameter("userID");
System.out.println(id);
if (id != null && !id.equals(""))
{
userInfo = (SysUserinfo) sysService.get(SysUserinfo.class,
new Long(id));
}
else
{
}
result.put("userInfo", userInfo);
result.put("roles", sysService.getSupportData("SysRole", null));
if (userInfo != null)
{
result.put("userRoles", sysService.getUserRoles(userInfo));
}
SysUserRole sysUserRole = null;
SysRole sysRole = null;
String roleId = null;
// 记录父列表ID
result.put("parentlistID", request.getParameter("parentlistID"));
result.put("userInfo", userInfo);
//遍历所有map里的key
Iterator it = result.keySet().iterator();
while (it.hasNext())
{
String key = (String) it.next();
request.setAttribute(key, result.get(key));
}
//这里就是从列表多选框传过来的数值。根据name属性获得所有的value
String[] rolesId = null;
rolesId = request.getParameterValues("rolesId");
System.out.println("------------------------" + rolesId + "-------------------");
if (rolesId == null || rolesId.equals(null))
{
return new ModelAndView(formView);
}
else
{
List userRoles = (List)sysService
.getUsersUserRoles(userInfo.getSuinId());
//先删除数据库中所有的,再插入所选的值
for (int k = 0; k < userRoles.size(); k++)
{
SysUserRole userRole = (SysUserRole)userRoles.get(k);
sysService.delete(userRole);
}
for (int i = 0; i < rolesId.length; i++)
{
roleId = rolesId[i];
sysRole = (SysRole)sysService.get(SysRole.class, new Long(roleId));
sysUserRole = new SysUserRole();
sysUserRole.setUser(userInfo);
sysUserRole.setRole(sysRole);
sysService.save(sysUserRole);
}
//如果在###-servlet.xml配置文件中,successView不能传递参数,可在这里直接有response导向别的页面
response.sendRedirect(request.getContextPath()
+ "/sys/userRolesList.htm?userID=" + userInfo.getSuinId().toString());
return null;
}
}
posted @
2006-10-25 09:27 lovetq 阅读(1777) |
评论 (0) |
编辑 收藏
StringTokenizer:字符串分隔解析类型
属于:java.util包。
1、构造函数。
1. StringTokenizer(String str) :构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。
2. StringTokenizer(String str, String delim) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
2、方法。
说明:
1. 所有方法均为public;
2. 书写格式:[修饰符] <返回类型> <方法名([参数列表])>
如:
static int parseInt(String s) 表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。
1. int countTokens() :返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量(例2)。
2. boolean hasMoreTokens() :返回是否还有分隔符。
3. boolean hasMoreElements() :结果同2。
4. String nextToken() :返回从当前位置到下一个分隔符的字符串。
5. Object nextElement() :结果同4。
6. String nextToken(String delim) :与4类似,以指定的分隔符返回结果。
例子:
String s = new String("The Java platform is the ideal platform for network computing");
StringTokenizer st = new StringTokenizer(s);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
}
结果为:
Token Total: 10
The
Java
platform
is
the
ideal
platform
for
network
computing
例2:
String s = new String("The=Java=platform=is=the=ideal=platform=for=network=computing");
StringTokenizer st = new StringTokenizer(s,"=",true);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
}
结果为:
Token Total: 19
The
=
Java
=
platform
=
is
=
the
=
ideal
=
platform
=
for
=
network
=
computing
posted @
2006-10-08 17:33 lovetq 阅读(260) |
评论 (0) |
编辑 收藏