﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-eamoi之Coder日志-随笔分类-JSP/Servlet</title><link>http://www2.blogjava.net/eamoi/category/290.html</link><description>工欲事,必先善其器--&gt;只选择适合自己的技术，不选择最豪华的技术！</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 16:57:04 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 16:57:04 GMT</pubDate><ttl>60</ttl><item><title>[涂鸦]总结告一段落，新的启程</title><link>http://www.blogjava.net/eamoi/archive/2006/03/29/38040.html</link><dc:creator>eamoi</dc:creator><author>eamoi</author><pubDate>Wed, 29 Mar 2006 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/eamoi/archive/2006/03/29/38040.html</guid><wfw:comment>http://www.blogjava.net/eamoi/comments/38040.html</wfw:comment><comments>http://www.blogjava.net/eamoi/archive/2006/03/29/38040.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/eamoi/comments/commentRss/38040.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eamoi/services/trackbacks/38040.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 《Ajax开发精要：概念、案例与框架》交稿，开始新的计划。&nbsp;&nbsp;<a href='http://www.blogjava.net/eamoi/archive/2006/03/29/38040.html'>阅读全文</a><img src ="http://www.blogjava.net/eamoi/aggbug/38040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eamoi/" target="_blank">eamoi</a> 2006-03-29 14:10 <a href="http://www.blogjava.net/eamoi/archive/2006/03/29/38040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于JSTL的简单说明</title><link>http://www.blogjava.net/eamoi/archive/2005/04/05/2873.html</link><dc:creator>eamoi</dc:creator><author>eamoi</author><pubDate>Tue, 05 Apr 2005 04:05:00 GMT</pubDate><guid>http://www.blogjava.net/eamoi/archive/2005/04/05/2873.html</guid><wfw:comment>http://www.blogjava.net/eamoi/comments/2873.html</wfw:comment><comments>http://www.blogjava.net/eamoi/archive/2005/04/05/2873.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/eamoi/comments/commentRss/2873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eamoi/services/trackbacks/2873.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这两天详细的看了JSTL,了解了各个标签的具体使用情况.
与Struts标签库相比,有共性,也有个性.
简单记录下来,供参考.&nbsp;&nbsp;<a href='http://www.blogjava.net/eamoi/archive/2005/04/05/2873.html'>阅读全文</a><img src ="http://www.blogjava.net/eamoi/aggbug/2873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eamoi/" target="_blank">eamoi</a> 2005-04-05 12:05 <a href="http://www.blogjava.net/eamoi/archive/2005/04/05/2873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>两个开源分页标签的使用比较</title><link>http://www.blogjava.net/eamoi/archive/2005/01/24/676.html</link><dc:creator>eamoi</dc:creator><author>eamoi</author><pubDate>Mon, 24 Jan 2005 00:35:00 GMT</pubDate><guid>http://www.blogjava.net/eamoi/archive/2005/01/24/676.html</guid><wfw:comment>http://www.blogjava.net/eamoi/comments/676.html</wfw:comment><comments>http://www.blogjava.net/eamoi/archive/2005/01/24/676.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/eamoi/comments/commentRss/676.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eamoi/services/trackbacks/676.html</trackback:ping><description><![CDATA[<P>以下内容是eamoi在dev2dev回答一网友问题的摘要.因为有共性,故摘要于此.</P>
<P>详细源帖请查阅:</P>
<P><A href="http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=19428&tstart=0">http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=19428&tstart=0</A></P>
<P>这两天将两个包彻底研究并编码测试了一下,接下来将两个分页标签做一个简单的说明和比较.这里将前者(国内比较流行的pager.rar)称为 P1,后者(pager-taglib-2.0.war,下载地址:<A class=embed_link href="http://jsptags.com/tags/navigation/pager/index.jsp?tree1.plus=4" target=_blank>http://jsptags.com/tags/navigation/pager/index.jsp?tree1.plus=4</A><BR>)称为P2. <BR><BR><FONT color=#ff0000>两者的共同点: </FONT><BR><BR><STRONG>[设计出发点] </STRONG>通过标签库封装,将分页的手工计算转化为标签自动计算,提供统一 <BR>的分页导航条,简化分页设计,提高工作效率. <BR><STRONG>[标签设计] </STRONG>提供以主标签和内嵌子标签为结构的分页标签库,通过标签参数设置,控制分页的显示效果. <BR><STRONG>[分页主体内容显示] </STRONG>需要手工计算分页主体内容. <BR><STRONG>[是否适用Struts] </STRONG>两者都是针对JSP开发的,在标签中会自动取得标签参数,然后自动控制显示效果.因此,不完全适用Struts,除非你在Action中手工取得标签参数,并且放到request中. <BR><BR><FONT color=#ff0000>两者的不同点: </FONT><BR><BR><STRONG>[P1]: </STRONG><BR>将分页导航条和主体内容放到form中,参数放到生成的<input type="hidden" value="">中实现.提供唯一一个标签 page:navigator来统一表现分页导航条,提供任意页跳转功能.即使中途转出返回，比如链接到其它页面对某记录进行一下处理，直接返回重新访问或刷新该页面即可恢复转出前的状况（页号和每页记录数等），不用费心处理。简洁，只需三行代码，在需要分页的地方，头尾加上两行标记，中间适当位置插入导航条标记，如下： <BR>　 <page:pager total='1000'> <BR>　　　 ....//这里是显示记录的地方 <BR>　　　 <page:navigator type='button'><!--这里显示导航条,就是上一页下一页的--> <BR>　 </page:pager> </P>
<P><STRONG>[P2]: <BR></STRONG>提供pg:pager为主标签,pg:param、pg:item、pg:index、pg:first、pg:prev、pg:page、pg:pages、pg:next、pg:last、pg :skip为内嵌子标签的分页控制方法,将参数放在pageContext或者request中,使用pg:param标签可以在URL后面增加参数,分页导航条分散到 pg:first等各个标签控制,提高灵活性.提供了包括Google等在内的多种导航条样式和选择功能,提供export variables功能. 不支持中途跳转功能. </P>
<P><STRONG>[P1和P2如何在Struts中使用]: </STRONG><BR>正如前文所说,P1和P2是针对JSP开发的,所以页面提交target也是标签所在的JSP页面,标签的控制参数以及分页效果在页面中有标签自动读取和计算. <BR>因此,将P1和P2应用到Action的关键是参数传递和分页主体内容的计算(原来在JSP中内嵌,手工计算). <BR>如果在Action中,request是转发的,那么页面参数会自动保留(这个应该占多数).如果request不是转发的那么参数要先取得,再压入 request中. <BR>现在关键是分页主体内容的计算.以P1为例: <BR>　　　　　　　　　　　　　　　 //定义分页参数--页码和每页显示数目 <BR>　　　　　　　　　　　　　　　 int iPageNo = 1; <BR>　　　　　　　　　　　　　　　 if(request.getParameter("pageNo")!=null) iPageNo=Integer.parseInt((String)request.getParameter("pageNo")); <BR>　　　　　　　　　　　　　　　 int iPageSize = 10; <BR>　　　　　　　　　　　　　　　 if(request.getParameter("pageSize")!=null) iPageSize=Integer.parseInt((String)request.getParameter("pageSize")); <BR>　　　　　　　　　　　　　　　 String choice = "first"; <BR>　　　　　　　　　　　　　　　 if(request.getParameter("choice")!=null) choice = request.getParameter("choice"); <BR>　　　　　　　　　　　　　　　 HotInfoValue[] hotInfoValues = new HotInfoValue[0]; <BR>　　　　　　　　　　　　　　　 try { <BR>　　　　　　　　　　　　　　　　　　　 //这里取出所有数据,放到hotInfoValues数组里面 <BR>　　　　　　　　　　　　　　　 }catch(Exception ex2) { <BR>　　　　　　　　　　　　　　　 } <BR>　　　　　　　　　　　　　　　 int resultNum = hotInfoValues.length; <BR>　　　　　　　　　　　　　　　 request.setAttribute("hotInfoNum",Integer.toString(resultNum));// item条目总数 <BR>　　　　　　　　　　　　　　　 Collection result = null; <BR>　　　　　　　　　　　　　　　 if(resultNum!=0) { <BR>　　　　　　　　　　　　　　　　　　　 int pages = (resultNum % iPageSize == 0) ? resultNum / iPageSize : resultNum / iPageSize + 1; <BR>　　　　　　　　　　　　　　　　　　　 if (choice.equals("next")) iPageNo++; <BR>　　　　　　　　　　　　　　　　　　　 if (choice.equals("prev")) iPageNo--; <BR>　　　　　　　　　　　　　　　　　　　 if (choice.equals("first")) iPageNo = 1; <BR>　　　　　　　　　　　　　　　　　　　 if (choice.equals("last")) iPageNo = pages; <BR>　　　　　　　　　　　　　　　　　　　 result = new ArrayList(); <BR>　　　　　　　　　　　　　　　　　　　 for(int i=(iPageNo-1)*iPageSize;i<iPageSize*iPageNo;i++) { <BR>　　　　　　　　　　　　　　　　　　　　　　　 if(i>=resultNum) break; <BR>　　　　　　　　　　　　　　　　　　　　　　　 result.add(hotInfoValues <EM>); <BR></EM>　　　　　　　　　　　　　　　　　　　 } <BR>　　　　　　　　　　　　　　　　　　　 if(result.toArray().length!=0) request.setAttribute("hotInfoValues",(HotInfoValue[])result.toArray(new HotInfoValue[0])); <BR>　　　　　　　　　　　　　　　 } <BR>　　　　　　　　　　　　　　　 return actionMapping.findForward("---"); <BR>上述代码的关键是取得当前页面等参数,手工计算本页主体内容数据,将取得的数据压入request中.在JSP中,通过logic:iterate标签实现循环迭代.</P><img src ="http://www.blogjava.net/eamoi/aggbug/676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eamoi/" target="_blank">eamoi</a> 2005-01-24 08:35 <a href="http://www.blogjava.net/eamoi/archive/2005/01/24/676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[原创]关于ClassName.class.getClassLoader的几点说明. </title><link>http://www.blogjava.net/eamoi/archive/2005/01/14/301.html</link><dc:creator>eamoi</dc:creator><author>eamoi</author><pubDate>Fri, 14 Jan 2005 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/eamoi/archive/2005/01/14/301.html</guid><wfw:comment>http://www.blogjava.net/eamoi/comments/301.html</wfw:comment><comments>http://www.blogjava.net/eamoi/archive/2005/01/14/301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/eamoi/comments/commentRss/301.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eamoi/services/trackbacks/301.html</trackback:ping><description><![CDATA[经常希望通过ClassName.class.getClassLoader().getResourceAsStream(““)来取得properties文件.通常:ClassName.class.getClassLoader().getResourceAsStream(““)取得的是WEB-INF的下级目录，比如ClassName.class.getClassLoader().getResourceAsStream(“db.properties“).在Tomcat中，可以通过增加”../”来取得上层目录，即WEB-INF目录，这样就可以把properties放在WEB-INF中统一管理。但是WLS不识别”../”。<br />另外一种土办法，就是不返回classLoader,直接ClassName.class.getResourceAsStream()。然后通过多个”../”（小于6个）来返回相应的上级目录。<br />当然，如果类扩展了HttpServlet，可以通过getServletContext().getRealPath("/")来取得Web部署目录的绝对路径。<img src ="http://www.blogjava.net/eamoi/aggbug/301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eamoi/" target="_blank">eamoi</a> 2005-01-14 15:07 <a href="http://www.blogjava.net/eamoi/archive/2005/01/14/301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[收藏]java生成缩略图代码</title><link>http://www.blogjava.net/eamoi/archive/2005/01/14/296.html</link><dc:creator>eamoi</dc:creator><author>eamoi</author><pubDate>Fri, 14 Jan 2005 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/eamoi/archive/2005/01/14/296.html</guid><wfw:comment>http://www.blogjava.net/eamoi/comments/296.html</wfw:comment><comments>http://www.blogjava.net/eamoi/archive/2005/01/14/296.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/eamoi/comments/commentRss/296.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/eamoi/services/trackbacks/296.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: [收藏]java生成缩略图代码&nbsp;&nbsp;<a href='http://www.blogjava.net/eamoi/archive/2005/01/14/296.html'>阅读全文</a><img src ="http://www.blogjava.net/eamoi/aggbug/296.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/eamoi/" target="_blank">eamoi</a> 2005-01-14 15:07 <a href="http://www.blogjava.net/eamoi/archive/2005/01/14/296.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>