<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>中文 &#187; jeliurry</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/author/jeliurry/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Sat, 26 May 2012 06:34:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>动态设置和获取bean中的属性值</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/bean/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/bean/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:56:12 +0000</pubDate>
		<dc:creator>jeliurry</dc:creator>
				<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[bean]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[动态设置]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/bean/</guid>
		<description><![CDATA[不怎么喜欢用框架。感觉很耗时间。所以决定自己写一个，相似的功能。每回在设置bean的属性时总是很麻烦。 所以像让程序动态的去获取bean的属性值。在方法中只要扔一个空的bean和sql进去，就可以返回一个生成好的bean方法。这样使用起来就很方便了。 下面是我的初步的一个探索，很大家分享一下 首先是一个Bean文件 &#160; &#160; package com.test.string; public class Bean { private int id; private String name; private String pwd; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String [...]]]></description>
			<content:encoded><![CDATA[<p>不怎么喜欢用框架。感觉很耗时间。所以决定自己写一个，相似的功能。每回在设置bean的属性时总是很麻烦。</p>
<p>所以像让程序动态的去获取bean的属性值。在方法中只要扔一个空的bean和sql进去，就可以返回一个生成好的bean方法。这样使用起来就很方便了。</p>
<p>下面是我的初步的一个探索，很大家分享一下</p>
<p>首先是一个Bean文件</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre>package com.test.string;

public class Bean {
	private int id;
	private String name;
	private String pwd;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

}</pre>
<p>这个没什么。然后是主体类</p>
<p>&nbsp;</p>
<p>包含两个方法</p>
<p>&nbsp;</p>
<pre>package com.test.string;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.HashMap;
import java.util.Map;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Test {

	public Bean setBeanFromDB() {
		try {
			//这里模拟了数据库查询的内容
			Map&lt;String, Object&gt; userMap = new HashMap&lt;String, Object&gt;();
			userMap.put("id", 1001);
			userMap.put("name", "isoftstone");
			userMap.put("pwd", "234234");
			//这里模拟结束
			Bean bean = new Bean();
			BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
			PropertyDescriptor[] propertyDesc = beanInfo
					.getPropertyDescriptors();
			for (int i = 0; i &lt; propertyDesc.length; i++) {
				if (propertyDesc[i].getName().compareToIgnoreCase("class") == 0)
					continue;
				String column = propertyDesc[i].getName();
				System.out.print(propertyDesc[i].getName()+":");
				Object strValue = userMap.get(column);
				System.out.println(strValue);

				if (strValue != null) {
					Object[] oParam = new Object[] {};
					Method mr = propertyDesc[i].getWriteMethod();
					if (mr != null) {
						oParam = new Object[] { (strValue) };
						try {
							// 注意这里的参数。
							mr.invoke(bean, oParam);
						} catch (IllegalArgumentException iea) {
							System.out.println("参数错误。");
							iea.printStackTrace();
						}

					}
				}
			}

			return bean;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public void readBean(Bean bean) {

		Method metd = null;
		String fdname = null;

		try {

			Field[] fds = bean.getClass().getDeclaredFields();// 获取他的字段数组
			for (Field field : fds) {// 遍历该数组
				fdname = field.getName();// 得到字段名，
				metd = bean.getClass().getMethod("get" + change(fdname), null);// 根据字段名找到对应的get方法，null表示无参数
				System.out.println(fdname + ":" + metd.invoke(bean, null));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public static String change(String src) {
		if (src != null) {
			StringBuffer sb = new StringBuffer(src);
			sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));
			return sb.toString();
		} else {
			return null;
		}
	}

	public static void main(String[] args) {
		Test test = new Test();
		Bean bean = new Bean();
		bean.setId(100);
		bean.setName("hello");
		bean.setPwd("hello");
		test.readBean(bean);
		System.out.println("from DB-----------");
		bean = test.setBeanFromDB();

	}

}</pre>
<p>关键的地方都加了注释，大家可以跑跑看。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/bean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>web上的分页分析</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:55:59 +0000</pubDate>
		<dc:creator>jeliurry</dc:creator>
				<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[extjs]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/</guid>
		<description><![CDATA[在web编写中的经常会遇到，数据需要分页的情况。当数据量不是很大的时候。 可以直接使用js来分页。可以很好的提高性能。简化代码。数据量大的时候。还是需要使用java的分页类还处理。 今天我来分析下。分页中导航的显示效果的实现。 显示效果： [页面总数小于等于10，全部显示，当前页特殊显示] 上一页  1   2   3   4   5   6   7   8   9   10   下一页 [页面总数大于10，部分显示，当前页特殊显示] 上一页  1   2   3   …   20   下一页       [当前页面为首页时，上一页不可用] 上一页  1   2   3   4    …   20   下一页 上一页  1   2   3   4   5    …   20   下一页 上一页  1   2   3   4   5   6   …   20   下一页 上一页  1   …    3     4    5    6    7     …  20  下一页 [...]]]></description>
			<content:encoded><![CDATA[<p>在web编写中的经常会遇到，数据需要分页的情况。当数据量不是很大的时候。</p>
<p>可以直接使用js来分页。可以很好的提高性能。简化代码。数据量大的时候。还是需要使用java的分页类还处理。</p>
<p>今天我来分析下。分页中导航的显示效果的实现。</p>
<p><strong>显示效果：</strong><br />
[页面总数小于等于10，全部显示，当前页特殊显示]<br />
上一页  1   2   <strong>3</strong>   4   5   6   7   8   9   10   下一页<br />
[页面总数大于10，部分显示，当前页特殊显示]<br />
上一页  <strong>1</strong>   2   3   …   20   下一页       [当前页面为首页时，上一页不可用]<br />
上一页  1   <strong>2</strong>   3   4    …   20   下一页<br />
上一页  1   2   <strong>3</strong>   4   5    …   20   下一页<br />
上一页  1   2   3   <strong>4</strong>   5   6   …   20   下一页<br />
上一页  1   …    3     4    <strong>5</strong>    6    7     …  20  下一页<br />
上一页  1   …   14   15  <strong>16</strong>  17  18    ...  20  下一页<br />
上一页  1   …   15   16  <strong>17</strong>  18  19  20  下一页<br />
上一页  1   …   16   17  <strong>18</strong>  19  20  下一页<br />
上一页  1   …   17   18  <strong>19</strong>  20  下一页<br />
上一页  1   …   18   19  <strong>20</strong>  下一页[当前页面为末页时，下一页不可用]</p>
<p><strong>算法提取：<br />
0</strong>.页码显示规则：<br />
当前页为首页时不显示上一页；      上一页  <strong>1</strong>   2   3   …   20   下一页<br />
当前页为尾页时不显示下一页；      上一页  1   …   17   18  19  <strong>20</strong>  下一页<br />
<strong>1</strong>.页面总数(n)&lt;=10 {<br />
显示全部页码：上一页  1   2   <strong>3</strong>   4   5   6   7   8   9   10   下一页<br />
}<br />
<strong>2</strong>.页面总数(n) &gt; 10 {<br />
<strong>2</strong>.1     当前页码 &lt;=  4 {<br />
左侧显示所有 +  当前页码  +  右侧2个页码 + ... + 尾页<br />
上一页  <strong>1</strong>   2   3   …   20   下一页<br />
上一页  1   <strong>2</strong>   3   4    …   20   下一页<br />
上一页  1   2   <strong>3</strong>   4   5    …   20   下一页<br />
上一页  1   2   3   <strong>4</strong>   5   6   …   20   下一页<br />
}<br />
<strong>2</strong>.2      当前页码 &gt; 4 且&lt;= 页面总数(n) - 3 {<br />
首页  + ... + 左侧2个页码  + 当前页码  + 右侧2个页码  + ...  +  尾页<br />
上一页  1   …    3     4    <strong>5</strong>    6    7     …  20  下一页<br />
上一页  1   …   14   15  <strong>16</strong>  17  18    ...  20  下一页<br />
}<br />
<strong>2</strong>.3      当前页码 &gt; 页面总数(n) - 3 {<br />
首页 + ... +  左侧2个页面 +  当前页码  +  右侧显示所有<br />
上一页  1   …   15   16  <strong>17</strong>  18  19  20  下一页<br />
上一页  1   …   16   17  <strong>18</strong>  19  20  下一页<br />
上一页  1   …   17   18  <strong>19</strong>  20  下一页<br />
上一页  1   …   18   19  <strong>20</strong>  下一页<br />
}<br />
}</p>
<p>&nbsp;</p>
<p>下面我来把他修改成java语言。<br />
[java]</p>
<pre>public class PageTest {

	public static String pageControl(int page,int count){
		String strHtml = "";

		if(page &gt; 1){
			strHtml += "上一页";
		}
		if(count &lt;= 10){
			for(int i = 1;i&lt;=count;i++){
				if(page == i){
					strHtml+=" ["+i+"]";
				}else{
					strHtml+=" "+i;
				}
			}
		}else{
			if(page&lt;4){
				for(int i = page-1;i&gt;0;i--){
					strHtml+=" "+i;
				}
				strHtml+=" ["+page+"]";
				strHtml+=" "+(page+1);
				strHtml+=" "+(page+2);
				strHtml+=" ...";
				strHtml+=" "+count;

			}
			if(page&gt;4 &amp;&amp; (page&lt;=count-3)){
				strHtml+=" "+1;
				strHtml+=" ...";
				strHtml+=" "+(page-2);
				strHtml+=" "+(page-1);
				strHtml+=" ["+page+"]";
				strHtml+=" "+(page+1);
				strHtml+=" "+(page+2);
				strHtml+=" ...";
				strHtml+=" "+count;

			}
			if(page&gt;count-3){
				strHtml+=" "+1;
				strHtml+=" ...";
				strHtml+=" "+(page-2);
				strHtml+=" "+(page-1);
				strHtml+=" ["+page+"]";
				for(int i = page+1;i&lt;count;i++){
					strHtml+=" "+i;
				}
			}

		}

		if(page &lt; count){
			strHtml += "下一页";
		}

		return strHtml;
	}

	public static void main(String[] args) {
		System.out.println(PageTest.pageControl(6, 20));
	}
}</pre>
<p>[/java]</p>
<p>这个是分页导航的效果。需要对应的效果。可以自行修改。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/web-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于tomcat下的编码设置。</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/tomcat/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/tomcat/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 03:54:53 +0000</pubDate>
		<dc:creator>jeliurry</dc:creator>
				<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[servlet，编码，java，jsp，tomcat，配置tomcat，utf-8，URI，conf，server.xml，server，编码格式]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/tomcat/</guid>
		<description><![CDATA[jsp页面传值时，都习惯性的在servlet里面通过String函数去修改编码。很是麻烦。下面介绍一种方法只要设置完毕，就可以不需要在servelt和页面里编码转换了。 首先添加一个编码转换的过滤去。这个在晚上就可以收到很多。这是我从网上找的一个文章http://hi.baidu.com/magicalboy/blog/item/3aec93524a8832090cf3e3a9.html 然后修改tomcat下的conf 文件夹在的 &#160; 在tomcat中设置编码格式  &#60;Connector connectionTimeout="20000"  URIEncoding="utf-8" port="8080" protocol="HTTP/1.1" redirectPort="8443"/&#62; 红色字部分为添加的代码。主要修改的位置。不要设置到注释里了。 &#160; &#160;]]></description>
			<content:encoded><![CDATA[<p>jsp页面传值时，都习惯性的在servlet里面通过String函数去修改编码。很是麻烦。下面介绍一种方法只要设置完毕，就可以不需要在servelt和页面里编码转换了。</p>
<p>首先添加一个编码转换的过滤去。这个在晚上就可以收到很多。这是我从网上找的一个文章<a href="http://hi.baidu.com/magicalboy/blog/item/3aec93524a8832090cf3e3a9.html">http://hi.baidu.com/magicalboy/blog/item/3aec93524a8832090cf3e3a9.html</a></p>
<p>然后修改tomcat下的conf 文件夹在的</p>
<p>&nbsp;</p>
<h4 id="subjcns!5c9ef5269fe7fd17!167">在tomcat中设置编码格式</h4>
<div>
<div> &lt;Connector connectionTimeout="20000"  <span style="color: #ff0000">URIEncoding="utf-8"</span> port="8080" protocol="HTTP/1.1" redirectPort="8443"/&gt;</div>
<div>红色字部分为添加的代码。主要修改的位置。不要设置到注释里了。</div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/tomcat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

